jQuery的循环在IE中运行缓慢

时间:2018-08-22 20:32:39

标签: javascript jquery asp.net-mvc bootstrap-4

我写了一个通过对象的Jquery foreach循环。 IE花费15.8毫秒执行代码,而Chrome花费1.164毫秒执行代码。我需要做什么更改才能在IE中更快地运行?

$.each(prefs.ResultColumnPreferences, function (key, value) {
    if (value.IsLPID) {
        headerRow.append($("<th/>").text(prefs.ResultColumnPreferences[i].DisplayName + "LPID"));
        hideList.push(headerRow.children().length - 1);
    }
    else if (value.IsMultivalue) {
        headerRow.append($("<th/>").text(prefs.ResultColumnPreferences[i].DisplayName + "Multivalue"));
        hideList.push(headerRow.children().length - 1);
    }
    headerRow.append($("<th/>").text(value.DisplayName));
    if (!value.IsVisible) {
        hideList.push(headerRow.children().length - 1);
    }

    if (prefs.SortBy === value.PropertyName) {
        if (prefs.SortOrder === 1) {
            orderList = [[headerRow.children().length - 1, "asc"]];
        }
        else {
            orderList = [[headerRow.children().length - 1, "desc"]];
        }
    }


});

1 个答案:

答案 0 :(得分:0)

尽管浏览器的性能令人担忧,但浏览器之间的性能可能存在巨大差异;但是,它通常不会相差十倍。

jQuery旨在增强浏览器DOM访问之间的差异。在不同的浏览器中完成同一任务的差异应该不足为奇。但是,这可能因版本而异。

一种解决方案是逐步调试jQuery,并确定哪些行花费最大,因为某些事情是浏览器的功能,而有些则是库的功能。

另一种解决方案是仅使用本机Array.forEach,这可以改善某些性能差异。