データベース クエリ ツールとして機能する Web ページを開発しています。データベース テーブルのサイズは非常に大きい (26MB) ため、テーブルの各行を JavaScipt オブジェクトとして配列に格納することにしました (データの継続的な送信を防ぐため)。
ページは問題なく読み込まれます。問題は、JavaScript オブジェクトの配列を「クエリ」し始めたときに始まります。
以下の関数は、HTML テキスト ボックスの keyup イベントで実行されます。この関数が実行されると、ブラウザーが応答しなくなり、関数の実行が完了するまで一時的にフリーズします。この問題を解決するための setTimeout() および setInterval() 関数の使用について以前に読んだことがありますが、これらを自分の問題に適応させることができませんでした。
function searchStock() {
results.innerHTML = "Stock Loading..."; //results is a div tag where query results are displayed
var stringTyped = nameTextBox.value;
var resultString = "<table>";
for (var z = 0; z < stock.length; z++) //stock is the array of objects to be searched
{
if (stringTyped == "") {
resultString = resultString + rows[z]; //rows is an array consisting of how each item in the stock is displayed
}
else {
if (stock[z].Stock_Name.indexOf(stringTyped) != -1) {
resultString = resultString + rows[z];
}
}
}
resultString = resultString + "</table>";
results.innerHTML = resultString;
}