是否仍然值得在移动JavaScript上使用eval来提高性能?

时间:2013-10-29 12:28:22

标签: javascript performance mobile

  

要将所有模块组合到一个资源中,我们将每个模块写入一个单独的脚本标记,并将代码隐藏在注释块(/ * * /)中。当资源首次加载时,由于它被注释掉,因此不会解析任何代码。要加载模块,找到相应脚本标记的DOM元素,去掉注释块,并使用eval()代码....

     

在iPhone 2.2设备上,块注释中保存的200k JavaScript在页面加载期间增加了240ms,而在页面加载期间解析的200k JavaScript增加了2600 ms。通过在页面加载期间消除200,000个不需要的JavaScript,这比启动延迟减少了10倍!

http://googlecode.blogspot.co.uk/2009/09/gmail-for-mobile-html5-series-reducing.html https://developers.google.com/speed/docs/best-practices/mobile

这篇gmail文章已有三年多的历史了,从那时起,移动性能就有了很大的优势,比如iOS的Nitro和JIT等移动版。使用eval还可以获得性能提升吗?

1 个答案:

答案 0 :(得分:3)

它与以前的技术问题不同,因为JavaScript引擎变得如此高效。相反,在更像应用程序方面还有其他考虑因素。

enter image description here

现在有些技巧在方法上有所不同,例如使用web worker来释放线程的ajax请求,利用带有CSS转换的GPU和requestAnimationFrame甚至是asm.js.使用localStorage / sessionStorage和Application Cache是​​另一种方法,你可以在这些方面预先获得大量的客户端缓存,以避免调用除内容JSON / images数据urls / videos之外的内容,并将内容加载/执行到内存中这些缓存需要。

换句话说,这是一个不同的时间,你的问题很有意思,但没有集中在正确的领域,以真正改变网络应用程序的性能。