◆字符串的使用
在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代码优化一例" 本文主要讨论JavaScript代码的优化,着重于介绍JavaScript代码在企业开发中的重要性及其优化方法。 一、JavaScript代码的重要性 随着Web 2.0和Ajax概念的提出,JavaScript代码得到了...
本文将深入探讨"前台JavaScript速度优化"的相关知识点,包括但不限于代码优化策略、工具应用以及Ajax性能提升。 一、代码优化策略 1. 减少DOM操作:频繁的DOM操作会降低页面性能,因为每次操作都需要浏览器重新...
本资源“javascript经典特效---javascript代码自动生成.rar”显然聚焦于如何利用JavaScript生成代码,以创建出吸引人的视觉特效。这个压缩包内包含了一个名为“javascript代码自动生成.htm”的文件,很可能是教程或...
总之,JSMinifier作为一款基于Java的JavaScript代码压缩工具,为开发者提供了一种快速、简单的方式来进行代码优化。通过合理使用,可以显著提升网页加载速度,降低服务器压力,为用户提供更好的在线体验。在实际使用...
JavaScript异步代码优化是开发过程中不可或缺的一环,尤其是在前端开发中,由于JavaScript的单线程特性,异步处理显得尤为重要。本文将深入探讨JavaScript异步编程的问题及其优化策略。 首先,我们来关注最常见的一...
JavaScript代码优化是一项持续且重要的工作,它有助于提高代码的执行效率、可读性和可维护性。以下是根据给定文件内容总结的关于JavaScript代码优化的8点要点。 1. 松耦合原则 松耦合是一种设计原则,指的是在修改...
JavaScript代码压缩工具是一种优化网页性能的关键技术,尤其在当今互联网应用越来越复杂,JavaScript文件体积日益庞大的背景下,其重要性不言而喻。压缩JavaScript代码的主要目的是减少文件大小,提高网络传输效率,...
通过学习和理解这些JavaScript广告代码,开发者可以掌握如何在自己的网站上创建和优化广告,同时提升网站的用户体验和商业价值。对于网页设计师和前端开发者来说,熟练掌握这些技术是提升专业技能的重要途径。这个...
3. 代码优化:通过分析代码逻辑,代码生成器可以生成优化过的JavaScript,提高代码执行效率。 4. 代码格式化:自动格式化代码,保持代码整洁,遵循一定的编码规范。 5. 插件扩展:许多代码生成器支持插件系统,...
"超实用的javascript代码段"是席新亮著作的一个资源集合,提供了许多实际开发中常用且高效的代码片段,对于学习和提升JavaScript编程技能非常有帮助。 一、基础语法与类型 JavaScript的基础语法包括变量声明(var、...
在"272个超酷经典推荐JavaScript代码"这个资源中,我们可以预见到一系列实用且创新的JavaScript编程示例,这些示例将帮助开发者提升他们的技能,并为网页增加丰富的用户体验。 1. **基础语法和数据类型**:...
10. 游戏优化:代码使用了游戏优化技术,例如使用缓存和优化游戏循环,提高了游戏的性能和流畅度。 JavaScript 小游戏代码汇总展示了 JavaScript 语言在游戏开发中的应用,包括游戏逻辑、游戏对象、游戏事件和游戏...
总之,《JavaScript高级教程第二版》全面覆盖了JavaScript的核心概念和技术,通过丰富的实例和源代码,为开发者提供了一个深入理解和实践JavaScript的平台。通过学习这本书,读者不仅可以巩固基础,还能掌握高级特性...
2. **代码调试与优化**:掌握源代码可以帮助开发者更好地调试和优化自己的JavaScript程序。 3. **二次开发**:许多开源项目提供了可扩展的源代码,允许开发者根据自身需求进行定制化开发。 ### 如何获取 JavaScript...
JavaScript代码加载优化是提高网页性能的关键技术之一,尤其是在处理大量脚本或第三方追踪代码时。在给定的例子中,我们看到一种将统计代码分离并异步加载的方法,以避免阻塞页面渲染,同时确保统计数据的准确收集。...
《grunt代码优化管理工具源码解析》 在现代Web开发中,代码优化和管理是提升应用性能的关键步骤。本文将深入探讨"grunt代码优化管理工具"的源码,揭示其在代码优化和性能提升方面的机制,帮助开发者更好地理解和...
9. **性能优化**:讨论如何通过代码优化、减少HTTP请求、缓存策略等手段提高JavaScript应用程序的性能。 10. **错误处理**:学习如何有效地捕获和处理运行时错误,以及如何利用try...catch语句和异常处理。 11. **...
这篇“超实用的JavaScript代码段”文档很可能包含了许多常用的、实用的JavaScript函数和技巧,可以帮助开发者提高效率,解决实际问题。 首先,JavaScript的基础知识包括变量声明(var、let、const)、数据类型...