我写了一个通过对象的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"]];
}
}
});
答案 0 :(得分:0)
尽管浏览器的性能令人担忧,但浏览器之间的性能可能存在巨大差异;但是,它通常不会相差十倍。
jQuery旨在增强浏览器DOM访问之间的差异。在不同的浏览器中完成同一任务的差异应该不足为奇。但是,这可能因版本而异。
一种解决方案是逐步调试jQuery,并确定哪些行花费最大,因为某些事情是浏览器的功能,而有些则是库的功能。
另一种解决方案是仅使用本机Array.forEach,这可以改善某些性能差异。