JavaScript在函数执行时冻结浏览器

时间:2012-11-02 14:59:50

标签: javascript

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

0 个答案:

没有答案