最も速い方法は、実際には keydown イベントを使用することです。(常にキーが離されるのではなく、キーが押されたときに動作します。)
var timer;
$(".prod-name-input").keydown(function(){
var self = this;
clearTimeout(timer);
timer = setTimeout(function(){
$(".smart-suggestions").load('invoice-get-data.php?searchword=' + self.value);
},250);
});
これにより、ユーザーが 1/4 秒以上入力を停止した場合に結果が読み込まれます。発生しているリクエストが多すぎる場合は、遅延を 500 に増やします。
コメントを付けてコードを 1 行ずつ説明します。
// declare a variable that will hold a reference to the timer we create
var timer;
// bind a keydown event to all existing elements that have the prod-name-input class
$(".prod-name-input").keydown(function(){
// store a reference to the clicked element so we can access it inside of setTimeout()
var self = this;
// clear existing timer stored in the timer variable (if any)
clearTimeout(timer);
// create a new timer and store it in the timer variable
timer = setTimeout(function(){
// load content
$(".smart-suggestions").load('invoice-get-data.php?searchword=' + self.value);
// give the timer a 250ms delay (0.25 seconds or 1/4 of a second)
},250);
});