【问题标题】:Jquery for loop is running slow in IEJquery for 循环在 IE 中运行缓慢
【发布时间】:2019-01-29 04:15:27
【问题描述】:

我通过一个对象编写了一个 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"]];
        }
    }


});

【问题讨论】:

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


【解决方案1】:

虽然浏览器性能令人担忧,但不同浏览器的性能可能存在很大差异;但是,它通常不会相差十倍。

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

一个解决方案是逐步调试 jQuery,并确定哪些行是您花费最多的,因为有些东西是浏览器的功能,而其中一些是库的功能。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    • 2015-01-28
    • 1970-01-01
    • 2017-05-12
    • 1970-01-01
    相关资源
    最近更新 更多