【问题标题】:How can I optimize for IE?如何针对 IE 进行优化?
【发布时间】:2011-05-14 03:26:04
【问题描述】:

我有一个 JS-heavy 应用程序,它在 IE 中运行缓慢。我将花费大约一周的时间为 IE 进行优化,我想要一些关于尝试的方向。

我发现这个帖子引用了Drip,这似乎很有用:

IE and Memory accumulation in Javascript

我正在寻找诸如“使用 for 循环而不是 $.each”之类的技巧以及我可能不会使用的架构最佳实践。

我正在使用的库:

我已经在做的事情:

  • 使用 for 循环而不是 $.each
  • 为常用的 DOM 元素缓存 jQuery 上下文
  • 使用 Array.join() 与字符串连接构建 HTML

有什么建议吗?

谢谢!

【问题讨论】:

  • “使用 Array.join() 与字符串连接构建 HTML” 在我见过的几乎所有 JavaScript 实现中都是一个好主意。
  • 哪个版本的IE速度慢? v8 中的 javascript 执行比 v7 快得多。版本 8 仍然比 FFox 慢。对你想要达到的目标有一个明确的目标,因为在你用 IE 撞墙之前你可以做的可能只有这么多,如果它仍然太慢那么你将不得不寻找其他方式来优化。
  • IE7 和 IE8 都很慢(我忽略了 IE6)。显然,IE8 更好。我会以什么其他方式优化?我认为是 JavaScript 让事情变慢了,不幸的是,这个应用程序需要大量的 JS。我很好奇 Google 如何让他们的 JS 应用程序像在 IE 中一样运行。
  • @T.J. – 我想你的意思是前者比后者更受欢迎? ;)
  • @Marcel:是的(这也是我对 OP 意图的解读,希望我没有弄错!)。 :-)

标签: javascript jquery internet-explorer google-maps performance


【解决方案1】:

【讨论】:

    【解决方案2】:

    不要盲目地通过代码进行琐碎的改进,例如将 $.each() 循环更改为 for 循环;这真的毫无意义,总有一天你会后悔的。 使用分析器,因为您的大部分问题都源于极少数出乎意料的错误代码,这是一个很好的选择。

    dynaTrace ajax edition 之类的东西在这种情况下非常宝贵。

    【讨论】:

    • 嗯。 . .我怀疑我会后悔这种“微不足道”的变化,尽管你的观点被采纳了。但是,如果您碰巧知道任何特定于 IE 的瓶颈,我很好奇。也就是说,我肯定会一路寻找开发者造成的瓶颈。
    • 做好至少其中一些事情可以摆脱一些有价值的“好代码”。使用$.each() 编写的循环在页面加载时运行一次并迭代 5 件事确实不会减慢任何速度。寻找那些不必要地执行非常昂贵的 jQuery 查找的代码,可能一遍又一遍。
    【解决方案3】:

    如果是 IE6/7 和“一页”应用程序,则最小化 dom 操作,即。与其在一个循环中做数百个小改动,不如做一个大的替换。

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 2011-08-01
      • 2010-09-06
      • 1970-01-01
      • 2013-01-18
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多