0

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

0 回答 0