`

JavaScript代码优化(二)

阅读更多

◆字符串的使用

在IE6和IE7中因字符串级联导致的主要问题是垃圾回收性能,虽然这些问题在IE8中已经得到解决,但如果你的用户大部分仍然在使用IE或IE7,你就得格外注意这个问题了。看一个例子先:

var veryLongMessage = "This is a long string that due to our strict line length limit of" 
+ maxCharsPerLine + " characters per line must be wrapped. " 
+ percentWhoDislike + "% of engineers dislike this rule. The line length limit is for " 
+ " style purposes, but we don't want it to have a performance impact." 
+ " So the question is how should we do the wrapping?";

 

◆使用连接代替级联:

var veryLongMessage = ["This is a long string that due to our strict line length limit of",
maxCharsPerLine, 
" characters per line must be wrapped. ", 
percentWhoDislike, 
"% of engineers dislike this rule. The line length limit is for ",
" style purposes, but we don't want it to have a performance impact.",
 " So the question is how should we do the wrapping?"].join();

 

与此类似,在条件语句中使用级别也是很低效的,错误的做法:

var fibonacciStr = "First 20 Fibonacci Numbers ";
for (var i = 0; i < 20; i++) {
	fibonacciStr += i + " = " + fibonacci(i) + " ";
}

 正确的方法:

var strBuilder = ["First 20 fibonacci numbers:"];
for (var i = 0; i < 20; i++) {
	strBuilder.push(i, " = ", fibonacci(i)," ");
}
var fibonacciStr = strBuilder.join("");

 ◆定义类函数

下面的函数是低效的,因为每次构造baz.Bar的实例时,会创建一个新的函数和闭包:

baz.Bar = function () { 

  // constructor body 
	this.foo = function () { 

  // method body 
	};
};

 正确的方法是:

baz.Bar = function () { 

  // constructor body 
	this.foo = function () { 

  // method body 
	};
};
baz.Bar = function () { 

  // constructor body 
};
baz.Bar.prototype.foo = function () { 

  // method body 
};

使用这个方法时,无论baz.Bar构造了多少个实例,都只会为foo创建一个函数,而且不会创建闭包。

 

◆初始化实例变量

使用实例变量值类型初始值初始化实例变量声明,如数值、布尔值、空值、未定义或字符串,这样可以避免每次调用构造器时运行不必要的初始化代码。还是来看一个例子:

foo.Bar = function () {
	this.prop1_ = 4;
	this.prop2_ = true;
	this.prop3_ = [];
	this.prop4_ = "blah";
};

 


可以使用:

foo.Bar = function () {
	this.prop3_ = [];
};
foo.Bar.prototype.prop1_ = 4;
foo.Bar.prototype.prop2_ = true;
foo.Bar.prototype.prop4_ = "blah";

进行代替。

 

◆避免使用with

避免在代码中使用with,它会影响到性能,因为它修改了范围链,因此需要花费更多时间到其它范围去查找。

 

◆避免浏览器内存泄漏

对于Web应用程序而言,内存泄漏是很常见的事情,可能因此导致巨大的性能问题。因为浏览器的内存使用在增长,你的Web应用程序和其它程序就会变慢,最常见的内存泄漏是在JavaScript引擎和浏览器C++对象实现的DOM之间形成了循环引用,如在JavaScript引擎和IE浏览器的COM基础结构之间,以及JavaScript引擎和Firefox XPCOM基础结构之间。

分享到:
评论

相关推荐

    JavaScript代码优化一例.pdf

    "JavaScript代码优化一例" 本文主要讨论JavaScript代码的优化,着重于介绍JavaScript代码在企业开发中的重要性及其优化方法。 一、JavaScript代码的重要性 随着Web 2.0和Ajax概念的提出,JavaScript代码得到了...

    前台javascript速度优化

    本文将深入探讨"前台JavaScript速度优化"的相关知识点,包括但不限于代码优化策略、工具应用以及Ajax性能提升。 一、代码优化策略 1. 减少DOM操作:频繁的DOM操作会降低页面性能,因为每次操作都需要浏览器重新...

    javascript经典特效---javascript代码自动生成.rar

    本资源“javascript经典特效---javascript代码自动生成.rar”显然聚焦于如何利用JavaScript生成代码,以创建出吸引人的视觉特效。这个压缩包内包含了一个名为“javascript代码自动生成.htm”的文件,很可能是教程或...

    javascript代码压缩工具

    总之,JSMinifier作为一款基于Java的JavaScript代码压缩工具,为开发者提供了一种快速、简单的方式来进行代码优化。通过合理使用,可以显著提升网页加载速度,降低服务器压力,为用户提供更好的在线体验。在实际使用...

    浅析JavaScript异步代码优化

    JavaScript异步代码优化是开发过程中不可或缺的一环,尤其是在前端开发中,由于JavaScript的单线程特性,异步处理显得尤为重要。本文将深入探讨JavaScript异步编程的问题及其优化策略。 首先,我们来关注最常见的一...

    javascript代码优化的8点总结

    JavaScript代码优化是一项持续且重要的工作,它有助于提高代码的执行效率、可读性和可维护性。以下是根据给定文件内容总结的关于JavaScript代码优化的8点要点。 1. 松耦合原则 松耦合是一种设计原则,指的是在修改...

    JavaScript 代码压缩工具

    JavaScript代码压缩工具是一种优化网页性能的关键技术,尤其在当今互联网应用越来越复杂,JavaScript文件体积日益庞大的背景下,其重要性不言而喻。压缩JavaScript代码的主要目的是减少文件大小,提高网络传输效率,...

    javascript网站广告代码大全

    通过学习和理解这些JavaScript广告代码,开发者可以掌握如何在自己的网站上创建和优化广告,同时提升网站的用户体验和商业价值。对于网页设计师和前端开发者来说,熟练掌握这些技术是提升专业技能的重要途径。这个...

    JavaScript代码生成器

    3. 代码优化:通过分析代码逻辑,代码生成器可以生成优化过的JavaScript,提高代码执行效率。 4. 代码格式化:自动格式化代码,保持代码整洁,遵循一定的编码规范。 5. 插件扩展:许多代码生成器支持插件系统,...

    超实用的javascript代码段 源码

    "超实用的javascript代码段"是席新亮著作的一个资源集合,提供了许多实际开发中常用且高效的代码片段,对于学习和提升JavaScript编程技能非常有帮助。 一、基础语法与类型 JavaScript的基础语法包括变量声明(var、...

    272个超酷经典推荐JavaScript代码

    在"272个超酷经典推荐JavaScript代码"这个资源中,我们可以预见到一系列实用且创新的JavaScript编程示例,这些示例将帮助开发者提升他们的技能,并为网页增加丰富的用户体验。 1. **基础语法和数据类型**:...

    JavaScript 小游戏代码汇总

    10. 游戏优化:代码使用了游戏优化技术,例如使用缓存和优化游戏循环,提高了游戏的性能和流畅度。 JavaScript 小游戏代码汇总展示了 JavaScript 语言在游戏开发中的应用,包括游戏逻辑、游戏对象、游戏事件和游戏...

    JavaScript高级教程第二版源代码

    总之,《JavaScript高级教程第二版》全面覆盖了JavaScript的核心概念和技术,通过丰富的实例和源代码,为开发者提供了一个深入理解和实践JavaScript的平台。通过学习这本书,读者不仅可以巩固基础,还能掌握高级特性...

    javascript源代码下载

    2. **代码调试与优化**:掌握源代码可以帮助开发者更好地调试和优化自己的JavaScript程序。 3. **二次开发**:许多开源项目提供了可扩展的源代码,允许开发者根据自身需求进行定制化开发。 ### 如何获取 JavaScript...

    javascript代码加载优化方法

    JavaScript代码加载优化是提高网页性能的关键技术之一,尤其是在处理大量脚本或第三方追踪代码时。在给定的例子中,我们看到一种将统计代码分离并异步加载的方法,以避免阻塞页面渲染,同时确保统计数据的准确收集。...

    grunt代码优化管理工具源码

    《grunt代码优化管理工具源码解析》 在现代Web开发中,代码优化和管理是提升应用性能的关键步骤。本文将深入探讨"grunt代码优化管理工具"的源码,揭示其在代码优化和性能提升方面的机制,帮助开发者更好地理解和...

    精通JavaScript 书籍源代码

    9. **性能优化**:讨论如何通过代码优化、减少HTTP请求、缓存策略等手段提高JavaScript应用程序的性能。 10. **错误处理**:学习如何有效地捕获和处理运行时错误,以及如何利用try...catch语句和异常处理。 11. **...

    超实用的JavaScript代码段.pdf

    这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...

Global site tag (gtag.js) - Google Analytics