2010-11-22 101 views
5

我有一个JS沉重的应用程序,它在IE中运行速度很慢。我即将花费大约一周的时间来优化IE,并且我想要尝试一些方向。如何针对IE优化?

我发现这个线程引用Drip,这似乎是有用的:

IE and Memory accumulation in Javascript

我正在寻找类似的提示,“使用for循环,而不是$。每个”以及建筑的最佳实践,我可能没有使用。

库我使用的是:

事情我已经在做:

通过使用Array.join()对字符串连接

任何建议循环,而不是$。每

  • 缓存的jQuery上下文的公共参考的DOM元素
  • 建设HTML
    • 谢谢!

  • +1

    *“使用Array.join()与字符串连接构建HTML”*几乎所有我见过的JavaScript实现中的一个好主意。 – 2010-11-22 22:28:05

    +1

    哪个版本的IE浏览器速度慢? v8中的javascript执行速度远远快于v7。版本8仍然比FFox慢。有一个明确的目标,你想实现什么目标,因为在你用IE浏览器打墙之前可能只有这么多,如果它仍然太慢,那么你将不得不寻求优化其他方式。 – slugster 2010-11-22 22:30:38

    +0

    在IE7和IE8中都很慢(我忽略了IE6)。显然,IE8更好。我还能以其他方式进行优化?我认为这是JavaScript使事情变得缓慢,不幸的是,该应用程序需要大量的JS。我很好奇谷歌如何获得他们的JS应用程序以及他们在IE中的运行。 – marclar 2010-11-22 22:36:20

    回答

    5

    不要盲目地去通过您的代码做琐碎的改进,如改变$.each()循环来for循环;这真的毫无意义,有一天你会后悔的。 使用探查器是因为这是一个非常好的选择,大部分问题源于极少数意外的坏代码。

    像这样的情况下,dynaTrace ajax edition是非常宝贵的。

    2

    如果是IE6/7和“单页”应用程序,然后尽量减少dom操作,即。而是做一个大的替代,而不是循环中的数百个小变化。