我正在开发一个充当数据库查询工具的网页。数据库表的大小非常大(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;
}