我的网站在IE上播放速度很慢的主要原因是什么?

时间:2010-12-27 11:48:39

标签: javascript internet-explorer browser javascript-framework

我需要知道什么是主要原因(除了像CSS选择器分组,减少图像大小,使用图像精灵等基本原因),这使得网站在Internet Explorer上运行缓慢,因为我的网站在其他网站上工作正常像FF,铬等。

  1. 是Javascript框架的大量使用(即jQuery,extjs,prototype)?
  2. 是不是因为使用了基于JS框架的插件?
  3. 我应该使用核心javascript并删除任何js框架的使用吗?
  4. 我应该尽量避免使用jQuery(document).ready()吗?在jQuery框架的情况下?
  5. 在我所知道的一些问题之上,请回答我不能问的问题,因为对这些问题知之甚少。

    我需要让我的网站在IE上表现良好(6,7,8)也请建议。

    由于

4 个答案:

答案 0 :(得分:3)

它与jQuery无关。然而,插件是命中或未命中,并且可能在IE中没有经过良好测试。我自己冒风险使用。

IE中的DOM操作非常慢。使用appendChild(或insertRow)添加多个节点(例如,100 +表示长列表)比构建字符串和执行一个innerHTML要慢得多。

您还需要小心访问节点的方式。开发人员倾向于过多依赖jQuery并通过他们的类名搜索节点,例如:

$(".evenRows").hover(doSomething);

IE没有按类名获取节点的本机方式,因此JQ循环遍历整个文档和每个元素并检查其类名...需要通过RegExp检查,因为它可能看起来喜欢:

class="evenRows yellow foo bar"

最后,尽管IE8有所改进,但仍然使用旧的渲染引擎 - 与IE6相同。不要对动画发疯,也不要指望奇迹。

答案 1 :(得分:2)

由于MSIE的默认限制为2个并发连接,因此应尽量减少构建页面所需的请求数(使用css-sprites,将js和css文件合并到一个文件中)

答案 2 :(得分:2)

虽然你需要在IE中加快速度,但你仍然可以使用Firebug来寻找消耗资源的地方。

  • 安装Yslow并查看它告诉您的内容
  • 在Profiler下运行该站点(Yslow或Firebug有一个)并寻找瓶颈

很难回答像这样的一般性问题,但jQuery不太可能减慢一切,只记得

  • 尽可能使用ID作为选择器 - 它们是最快的,即$('#myid')
  • 避免使用没有标记名的.class选择器,即$('div.myclass')可以比$('.myclass')快十倍。

等等

更多tips for using jQuery以获得更好的效果。

答案 3 :(得分:0)

IE的早期版本通常会比IE的更高版本更慢地运行JavaScript,因为从那时起JavaScript编译速度有了进步。