Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Internet Explorer的Javascript优化_Javascript_Performance_Google Chrome_Browser_Internet Explorer 8 - Fatal编程技术网

Internet Explorer的Javascript优化

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浏览器

众所周知,与Chrome、Safari(Webkit)或Firefox(Mozilla)相比,Internet Explorer Javascript引擎在性能方面远远落后,尤其是IE 8和更老的浏览器

在开发具有重要javascript功能的web应用程序时,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性能和开发工具: