有没有办法加速JS脚本(我的意思是一些复杂的DOM操作,比如游戏或动画)?
答案 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的好地方。
对于动画,请查看为支持它的浏览器使用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来进行多个样式更改,而不是一次更改一个属性。
如果您需要在同一个过程中两次查找元素或属性,那么您应该第一次进行本地引用。
如果您没有调试,请记得关闭调试器。