Javascript加速?

时间:2010-02-17 00:36:53

标签: javascript acceleration

有没有办法加速JS脚本(我的意思是一些复杂的DOM操作,比如游戏或动画)?

7 个答案:

答案 0 :(得分:3)

Theres真的没办法真正加快速度。你可以压缩它但速度不会太快。

答案 1 :(得分:2)

使用V8 javascript引擎? :P

您可以这样做的唯一方法是减少代码中的dom和范围访问量。 例如多次访问dom中的元素时,而不是

document.something.mydiv.myelement.property1 = this
document.something.mydiv.myelement.property2 = bla
document.something.mydiv.myelement.property3 = foo
document.something.mydiv.myelement.property4 = bar

DO

var myel = document.something.mydiv.myelement
myel.property1 = this
myel.property2 = bla
myel.property4 = bar
myel.property3 = foo

请注意,有些javascript引擎会自动为您进行优化,但对于较旧的浏览器,后者肯定会比前者快,因为它只需要通过访问链一次到达myel

有关更多javascript优化技术,请观看此视频 http://www.youtube.com/watch?v=mHtdZgou0qU

答案 2 :(得分:2)

如果您的意思是在浏览器之外,那么您应该使用最快的,即Chrome's V8 Java Script engine

在浏览器中有大量优化技术可以更快地加载Java Script,这里是谷歌optimization techniques的好地方。

  • 使用YUI压缩器之类的工具编译Java脚本,而不是使用gzip压缩它。
  • 仅加载您需要的最低限度
  • Rich UI插件(即Flash / Silverlight
  • )仍然可以提供最复杂的动画效果

对于动画,请查看为支持它的浏览器使用HTML 5 Canvas元素,对于那些不支持它的浏览器,请回退到flash。

谷歌地图是纯Java脚本可行的一个很好的例子,尽管他们花费了丰富的资源来优化每个浏览器的性能。一如既往,提高速度的最佳方法是对不同的方法进行基准测试。例如div.innerHTML =“”,大多数时候比使用DOM动态添加元素等更快。

答案 3 :(得分:2)

您可以做的最好的事情是优化您的代码。使用profiler - 对于Firefox,Firebug,Safari和Windows IE 8内置了JavaScript调试器和分析器(至少我相信IE 8可以,如果我错了,有人会纠正我......)。在代码上运行配置文件将向您显示最慢的部分所在的位置,这些部分是您可以专注于优化的部分......可能还有更多更具体的问题。

答案 4 :(得分:1)

这是一个非常模糊的问题。你可以做一百万件事来加速你的代码(Ajaxian在写这篇文章的时候有157 articles这个主题),但是没有“让我更快”的按钮神奇地让所有人脚本运行得更快。如果有的话,生活会更容易

答案 5 :(得分:1)

来自Google的closure project提出了一些声明,尽管我没有亲自尝试过。

  

Closure Compiler将JavaScript编译成紧凑的高性能代码。编译器删除死代码并重写并最小化剩下的内容,以便下载并快速运行。它还检查语法,变量引用和类型,并警告常见的JavaScript陷阱。

答案 6 :(得分:1)

尝试对定位或“离屏”元素进行动画和显示更改 - 重新绘制页面的次数最少。

通过更改cssText或className来进行多个样式更改,而不是一次更改一个属性。

如果您需要在同一个过程中两次查找元素或属性,那么您应该第一次进行本地引用。

如果您没有调试,请记得关闭调试器。