javascript - Chrome 通过 jquery 清空我的列表框真的很慢

标签 javascript jquery html google-chrome

我允许用户搜索一个列表框,该列表框会缩小所述列表框中包含的结果。

ajax请求返回结果速度快,chrome添加结果速度快。问题出在我实际上清空列表框的中间步骤。

代码如下:

function PopulateListBox(data, listBox) {

    var options = '';
    if (data != null) {
        for (var i = 0; i < data.length; i++) {
            options += "<option value=\"" + data[i].Id + "\">" + data[i].Name + '</option>';
        }
    }
    listBox.empty().append(options);
}

其中数据是一个 JSON 数组,列表框是一个带有列表框 ID 的 jquery 选择器(选择器是按 ID 例如 $('#listbox')。大约有 5-10k 个选项在列表框中。

Firefox 甚至 IE 都能很好地处理这个问题,但 Chrome 却很顽固(“最快的 js 引擎”google 怎么了??)。

我使用的是最新的 jquery (1.5.1) 和 Chrome 11.0.696.3 dev。 (我也在使用 FF 3.6 和 IE 8)

最佳答案

使用 html() 可能会更快方法而不是 empty() 后跟 append():

listBox.html(options);

关于javascript - Chrome 通过 jquery 清空我的列表框真的很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5275420/

相关文章:

javascript - 如何定位动态条目网格行中的第一个和最后一个元素?

javascript - 使用 jQuery 将数据从一个表的选定行复制到另一个表

javascript - 用按钮控制单选按钮

javascript - 将数据从 View 传递到表达

javascript - typescript 不理解字符串数组中的第一项是字符串

javascript - 将代码文本解码为 ASCII 失败

HTML/CSS3 - 我在导航栏中添加了一个形状,它弄乱了对齐方式或我的包装器

javascript - 带 div 和 d3 缩放的 d3 力图

javascript - 在 jquery 中隐藏一些 future 的元素

JQuery,特定日期定位无法按预期工作