JavaScript 性能优化小结
随着 Web2.0 技术的不断推广,越来越多的应用使用 JavaScript 技术在客户端进行处理,从而使 JavaScript 在浏览器中的性能成为开发者所面临的最重要的可用性问题。而这个问题又因 JavaScript 的阻塞特性变的复杂,也就是说当浏览器在执行 JavaScript 代码时,不能同时做其他任何事情。本文详细介绍了如何正确的加载和执行 JavaScript 代码,从而提高其在浏览器中的性能。
在J2EE编程中,我们接触最多的脚本语言还是JavaScript。在使用JavaScript中我们通常会考虑其性能问题,因此将日常总结的关于JavaScript性能优化的方式总结出来,以备查询。
在使用JavaScript中经常会遇到字符串的拼接问题。请问大家在使用Java编程的时候遇到上述的问题,该怎么处理?
NX学生:老师,使用StringBulider 或StringBuffer
老师:回答正确,使用StringBuilder或StringBuffer能够避免过多创建对象,降低系统性能。
好了,回到正题,我们还是来解答在使用JavaScript中,遇到上述问题的处理方式。
首先,先来看看NX学生的处理方式:
<html> <script type="text/javascript"> var string="begin" var date = new Date() var begin = date.getTime() for(var i=0;i<9999999;i++){ string+="abc" } alert(new Date().getTime() - begin) </script> </html>
老师一看NX学生实现的方式,差点笑喷。这种垃圾的实现方式,真是毁了你一世英名啊。
老师面带微笑的说道:你这种实现方式就相当于小学生的水平,就是一堆垃圾字母的随机组合。说完只听见SB老师在键盘上键步如飞的敲其代码来。NX学生还没有反应过来,老师已经将代码完成:
<html> <script type="text/javascript"> var string="begin"; var string01=["begin"]; var date = new Date(); var begin = date.getTime(); for(var i=0;i<55555555;i++){ //string+="abc"; string01.push("abc"); } var result = string01.join(""); alert(new Date().getTime() - begin); </script> </html>
通过对以上代码的运行比较,老师的代码性能明显优于NX学生的代码,NX学生代码还会经常导致IE宕掉。
NX学生看到代码运行的结果,顿时对老师产生仰慕之情,决定虚心想老师学习,不断提升自己……
这个故事虽然告一段落,但是老师和NX学生的JavaScript之旅还在继续……