`
cyfgod
  • 浏览: 64805 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

优化JavaScript代码的几点经验

    博客分类:
  • Web
阅读更多
JavaScript做为一种客户端的脚本语言,有着其先天的劣势,无法做到如Java/C++等高级语言哪般的灵活和高效。所以我们在编写JavaScript代码时,一定要理解语言的特性,优化代码的执行效率。

以下是笔者在实际开发过程中总结的几点经验,以供分享。

1) 避免滥用getter/setter方法
    现在很多JavaScript代码也采用了面向OO的设计思想,封装成类和方法。我们在访问内部对象数据时,除非你的JavaScript代码是作为API供第三方调用,尽量不要采用getter/setter方法,而且直接采用obj._var的方式调用。这样可以避免过多的函数调用,提高性能。

2) 避免过多的函数调用
    如果不是特别的代码复用需要,尽量不要过多的拆分函数,特别是一些很小的函数。JavaScript对函数的调用没有做到很好的优化,过多频繁的函数调用,会降低代码的执行效率。

3) 尽量避免使用eval()函数
    eval函数在很多时候提供了一种很好的解决问题的思路,但如果不是特别需要,还是尽量避免使用它吧。

4) 避免使用prototype类库的$()函数
    很多人喜欢用prototype类库的一些函数,如用$()去获取DOM对象。但$()的效率明显不如document.getElementById()。所以有时候,还是尽量用JavaScript的核心库吧。

5) 避免重复使用document.getElementById去获取同一个对象
    每一次document.getElementById调用,都是一次开销,对同一对象,应只调用一次,拿到对象后赋给内部变量缓存。

6) 活用document.createDocumentFragment
    document.createDocumentFragment可以创建一个新的Document Fragment,然后可以添加一组的Nodes到这个Fragment里。如果需要,最后再把这个Fragment添加到主文档Document中。特别注意,如果你需要对DOM Node节点进行操作,尽量在添加到主Document文档之前。

7) 尽量少用setInterval和setTimeout
    如果可以采用callback的方式,就不要去使用setInterval和setTimeout函数。过多的使用, 会明显降低效率。

8) 避免频繁对字符串进行“+”加操作
    这个问题主要出现在IE浏览器,Firefox和Opera一般都没有太大的效率问题。解决方法一般是将字符串置入一个Array中进行操作。

就先说这些吧,大家也可以参考下面的几个链接文章,希望对大家有所帮助。

Efficient JavaScript

Javascript Performance

Best Practices for Speeding Up Your Web Site
3
3
分享到:
评论
2 楼 cyfgod 2009-03-11  
playfish 写道

关于第四点,其实是不太准确的。你可以看下jquery的源代码,如果发现是id符号,就直接调用原生的getElementById返回,不会影响效率。最大的效率影响,我觉得主要还是IE下的字符串操作。用array的join操作来替代ie下的字符串加减操作效率提高很明显。在循环外的性能优化,其实影响都不大。


的确,字符串操作的性能影响很明显。但其它一些的一点点的开销加起来,也会有不少的影响的,特别是对商业化产品,还有第三方的JS API库。其实这些都是一些coding style,主要还是应该避免对Javascript代码过度的设计化和OO化。
1 楼 playfish 2009-03-11  
关于第四点,其实是不太准确的。你可以看下jquery的源代码,如果发现是id符号,就直接调用原生的getElementById返回,不会影响效率。

最大的效率影响,我觉得主要还是IE下的字符串操作。用array的join操作来替代ie下的字符串加减操作效率提高很明显。

在循环外的性能优化,其实影响都不大。

相关推荐

    JavaScript 代码压缩工具

    JavaScript代码压缩主要有以下几个方面的知识点: 1. **代码混淆(Minification)**:这是最基础的压缩方式,主要通过移除代码中的空格、换行符、注释以及简化变量名来实现。例如,将`function add(a, b) { return ...

    javascript源代码下载

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

    javascript代码混淆器

    总的来说,JavaScript代码混淆器是开发者保护代码、优化性能的重要工具。JSMin、YUI Compressor和JSObfuscator各有其特点和适用场景,选择哪一种取决于实际的需求,例如,对于追求极致压缩的场景,JSMin和YUI ...

    javascript源代码大全

    在JavaScript中,有以下几个重要的知识点: 1. **基础语法**:包括变量(var、let、const)、数据类型(如字符串、数字、布尔、null、undefined、对象、数组、符号、bigint)、运算符(算术、比较、逻辑、位、三元...

    Javascript 性能优化的一点技巧

    ### JavaScript性能优化技巧详解 #### 引言 随着Web应用的日益复杂,JavaScript作为前端开发的核心语言之一,其运行效率直接影响着用户体验与整体性能。因此,掌握一定的JavaScript性能优化技巧对于提升应用程序...

    JAVASCRIPT实战手册代码部分

    通过这本书的代码部分,我们可以深入了解以下几个重要的JavaScript知识点: 1. **基础语法**:JavaScript的基础包括变量声明(var、let、const)、数据类型(如字符串、数字、布尔值、对象、数组等)、流程控制(if...

    javascript代码压缩工具

    JavaScript代码压缩工具是一种用于优化和减小程序体积的实用程序,特别是在网页开发中广泛使用。JavaScript代码的压缩可以显著提升页面加载速度,减少网络传输的数据量,从而提高用户体验。本工具以GUI(图形用户...

    JavaScript 高级程序设计(第3版)【附源代码】

    9. **性能优化**:书中提供了一些优化技巧,如减少DOM操作、使用事件委托、避免阻塞主线程等,以提高JavaScript代码的执行效率。 10. **错误处理**:详细讨论了如何捕获和处理运行时错误,以及如何构建健壮的异常...

    JavaScript值班表代码

    在给定的部分代码中,我们可以看到以下关键点: 1. **外部脚本引入**:`<script language="JavaScript" type="text/JavaScript" src="../zb/date.js"></script>` 这一行代码表明了从外部引入了一个名为`date.js`的...

    272个超酷经典JavaScript代码

    10. **性能优化**:如避免内存泄漏、减少DOM操作、利用事件委托等,都是提高JavaScript代码性能的关键技巧。 11. **动画与定时器**:setTimeout和setInterval可用于实现定时任务,而requestAnimationFrame则常用于...

    深入浅出javascript源代码

    在探索JavaScript源代码的过程中,有几个关键知识点是不容忽视的: 1. **基础语法**:JavaScript的基础包括变量声明(var、let、const)、数据类型(原始类型与引用类型)、运算符、流程控制(条件语句、循环)以及...

    JavaScript高程源代码

    10. **性能优化**:包括减少DOM操作、使用事件委托、避免内存泄漏以及利用缓存等技巧,以提高JavaScript代码的运行效率。 通过阅读《JavaScript高级编程》的源代码,你可以更深入地掌握这些概念,并提升自己的...

    精通javascript 源代码

    10. **性能优化**:学习如何编写高性能的JavaScript代码,包括减少DOM操作、优化循环、使用事件委托、合理利用缓存等技巧。 在"精通JavaScript源代码"的练习过程中,通过编写实际项目,你可以加深对这些概念的理解...

    JavaScript检查器和优化器.zip

    在使用JavaScript检查器和优化器时,需要注意以下几点: - 在优化前,确保代码的可读性和维护性。过度优化可能导致代码难以理解,增加后期维护的难度。 - 使用检查器找出性能瓶颈,例如DOM操作过多、未优化的循环...

    17个超级javascript代码

    这些JavaScript代码可能涵盖以下几个方面的知识点: 1. **DOM操作**:JavaScript通过DOM API可以创建、修改和操作HTML元素。例如,如何添加、删除或修改元素属性,以及如何响应用户的点击事件。 2. **事件处理**:...

    网站页面代码该如何做SEO优化-如何优化js代码来符合seo优化标准精编范文样本.docx

    以下是关于如何优化JavaScript代码以符合SEO优化标准的详细解释: 首先,优化HEAD部分的代码规范化至关重要。搜索引擎爬虫首先读取HEAD部分,标准化且独特的代码能够吸引搜索引擎的注意力,避免模板化的代码设计。...

    一个专门用来压缩JAVASCRIPT代码的工具

    为了解决这个问题,出现了专门的JavaScript压缩工具,如JsMinGUI.exe,用于优化和压缩JavaScript代码。 JsMinGUI是一个图形用户界面(GUI)版本的JavaScript压缩工具,它基于Doug Crockford的JsMin算法。这个工具的...

    JavaScript解析器用于ES6的压缩器优化器和美化工具包

    Terser的优化策略包括但不限于以下几点: 1. **变量重命名**:通过使用更短的变量名来减少字符数。 2. **死代码消除**:检测并移除不会被执行的代码块。 3. **内联表达式**:如果函数只被调用一次,那么可以将其内容...

    李炎恢在线课堂JavaScript讲义代码.rar

    10. **性能优化**:如何编写高性能的JavaScript代码,包括避免全局变量、减少DOM操作、合理使用定时器等。 通过李炎恢老师的JavaScript讲义代码,学习者不仅可以加深对上述概念的理解,还能通过实际的代码示例来...

    java,c++,javascript,html APP 代码整理工具用于申请软著

    在使用这个工具时,开发者可以期待以下几点: 1. **代码格式化**:工具会自动调整代码的缩进、空格、换行等,使其符合标准格式,便于阅读和审查。 2. **编码风格统一**:对于团队开发项目,工具可以帮助统一各个...

Global site tag (gtag.js) - Google Analytics