Internet Explorer的Javascript优化
众所周知,与Chrome、Safari(Webkit)或Firefox(Mozilla)相比,Internet Explorer Javascript引擎在性能方面远远落后,尤其是IE 8和更老的浏览器 在开发具有重要javascript功能的web应用程序时,IE的性能比其他应用程序差得多Internet Explorer的Javascript优化,javascript,performance,google-chrome,browser,internet-explorer-8,Javascript,Performance,Google Chrome,Browser,Internet Explorer 8,众所周知,与Chrome、Safari(Webkit)或Firefox(Mozilla)相比,Internet Explorer Javascript引擎在性能方面远远落后,尤其是IE 8和更老的浏览器 在开发具有重要javascript功能的web应用程序时,IE的性能比其他应用程序差得多 是否有任何实践可以帮助改进您的javascript代码,从而使好的执行者(非IE)和坏的执行者(IE)之间的差距不那么大?我认为合理的解决方案是 这只允许在IE中使用Chrome框架,而不允许在非IE浏览器
是否有任何实践可以帮助改进您的javascript代码,从而使好的执行者(非IE)和坏的执行者(IE)之间的差距不那么大?我认为合理的解决方案是
这只允许在IE中使用Chrome框架,而不允许在非IE浏览器中使用
IE的JavaScript性能和开发工具:
优化性能的一种常见方法是在for循环中缓存“max”值 所以,假设您必须遍历一个名为sampleArray的数组。您可以优化以下语句:
var sampleArray = [3, 10, 12, 5, 9];
for(var i = 0; i < sampleArray.length; i++){
var currentElement = sampleArray[i];
// so something wit element
}
var-sampleArray=[3,10,12,5,9];
对于(var i=0;i
将其更改为:
for(var i = 0, max = sampleArray.length; i < max; i++){
var currentElement = sampleArray[i];
// so something wit element
}
for(变量i=0,max=sampleArray.length;i
这表明所有浏览器的性能都有很大的提高。特别是,IE7已经证明使用这种模式可以将性能提高190倍。另外两种常见的解决方案: 缓存经常使用的DOM节点,不要在同一函数中再次重新计算它们。例如,代替
$(id).parentNode.something();
$(id).parentNode.somethingOther();
if (this.options.type == 'a') {
// ...
} else if (this.options.type == 'b') {
// ...
}
使用
从外部范围缓存常用对象。例如,代替
$(id).parentNode.something();
$(id).parentNode.somethingOther();
if (this.options.type == 'a') {
// ...
} else if (this.options.type == 'b') {
// ...
}
使用
这也将对缩小前后的代码大小产生积极影响。a。在旧版本的IE中提高性能的一种方法是使用原始JavaScript来创建DOM元素,而不是jQuery 示例-
(function () {
var rosterContainer = document.getElementByID("roster");
var memberContainer = document.createElement("div");
$(memberContainer).addClass("one_fourth alpha hentry")
.attr("id", mName.replace(/\s+/g," "))
.appendTo($(rosterContainer));
})();
b。您还可以为IE浏览器重新设计用户体验(UX)
示例-我的网站使用繁重的JS/jquery插件加载大背景,并用alpha Tween幻灯片放映。但是对于我的IE用户,我不会加载JS、插件或背景图片——我只会显示一个名为bg的静态文件
您可以使用诸如yepnope.js之类的加载程序为IE加载优化的js
c。确保站点的UI功能齐全,不使用JavaScript。这总是一个很好的起点。该问题的两个最高评分答案可能重复,这与适用于这里的建议几乎相同。是的,我知道Chrome Frame,我所寻找的是任何一种“最佳实践”,它们将有助于在IE中运行更快的javascript代码。IE的javascript性能和开发工具: