`
liuleigang
  • 浏览: 54703 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

js优化

    博客分类:
  • AJAX
阅读更多
1、循环
   循环是很常用的一个控制结构,大部分东西要依靠它来完成,在JavaScript中,我们可以使用for(;;),while(),for(in)三种循 环,事实上,这三种循环中for(in)的效率极差,因为他需要查询散列键,只要可以就应该尽量少用。for(;;)和while循环的性能应该说基本 (平时使用时)等价。而事实上,如何使用这两个循环,则有很大讲究。我在测试中有些很有意思的情况,见附录。最后得出的结论是:
  如果是循环变量递增或递减,不要单独对循环变量赋值,应该在它最后一次读取的时候使用嵌套的++或—操作符。
  如果要与数组的长度作比较,应该事先把数组的length属性放入一个局部变量中,减少查询次数。
2、不使用Eval
使用eval相当于在运行时再次调用解释引擎对内容进行运行,需要消耗大量时间。这时候使用JavaScript所支持的闭包可以实现函数模版
3、减少DOM访问
使用JavaScript访问DOM元素比较慢,因此为了获得更多的应该页面,应该做到:
缓存已经访问过的有关元素
线下更新完节点之后再将它们添加到文档树中
避免使用JavaScript来修改页面布局
4、DOM插入HTML
  很多人喜欢在JavaScript中使用document.write来给页面生成内容。事实上这样的效率较低,如果需要直接插入HTML,可以找一个容器元素,比如指定一个div或者span,并设置他们的innerHTML来将自己的HTML代码插入到页面中。
5、定时器
  如果针对的是不断运行的代码,不应该使用setTimeout,而应该是用setInterval。setTimeout每次要重新设置一个定时器。
6、遍历大数组时,缓存其长度
7、字符串连接性能优化
使用 Array 对象存储字符串,之后使用 join()方法输出结果
8、删除重复脚本,删除注释、不需要的空白字符(空格、换行、tab缩进)等
9、类型转换
类型转换是大家常犯的错误,因为JavaScript是动态类型语言,你不能指定变量的类型。
1) 把数字转换成字符串,应用"" + 1,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:
("" + ) > String() > .toString() > new String()
这条其实和下面的“直接量”有点类似,尽量使用编译时就能使用的内部操作要比运行时使用的用户操作要快。
String()属于内部函数,所以速度很快,而.toString()要查询原型中的函数,所以速度逊色一些,new String()用于返回一个精确的副本。
2) 浮点数转换成整型,这个更容易出错,很多人喜欢使用parseInt(),其实parseInt()是用于将字符串转换成数字,而不是浮点数和整型之间的转换,我们应该使用Math.floor()或者Math.round()。另外,和第二节的对象查找中的问题不一样,Math是内部对象,所以Math.floor()其实并没有多少查询方法和调用的时间,速度是最快的。
3) 对于自定义的对象,如果定义了toString()方法来进行类型转换的话,推荐显式调用toString(),因为内部的操作在尝试所有可能性之后,会尝试对象的toString()方法尝试能否转化为String,所以直接调用这个方法效率会更高
10、局部变量和全局变量
  局部变量的速度要比全局变量的访问速度更快,因为全局变量其实是全局对象的成员,而局部变量是放在函数的栈当中的。
分享到:
评论

相关推荐

    JS优化_淘宝网.pdf

    标题“JS优化_淘宝网.pdf”和描述“JS优化_淘宝网...但从上述的点可以看出,淘宝网在进行JavaScript优化时可能会考虑上述多方面的技术和方法。通过综合运用这些技术手段,可以极大程度上提升网站的加载速度和用户体验。

    javascript优化

    JavaScript 优化 JavaScript 作为一种脚本语言,广泛应用于 web 开发中,然而随着项目的复杂度增加,JavaScript 代码的性能问题不可忽视。因此,JavaScript 优化变得非常重要。本文将从多个方面对 JavaScript 优化...

    wangEditor.js优化版,实现wangEditor本地图片上传、wangEditor本地视频上传函数的构建,部分显示样式bug的调整

    wangEditor.js优化版,实现wangEditor本地图片上传、wangEditor本地视频上传函数的构建,部分显示样式bug的调整

    JavaScript优化.docx

    JavaScript优化是提升网页性能的关键步骤,尤其是在现代网页开发中,JavaScript的作用越来越大,但它对搜索引擎的友好性和页面加载速度都有直接影响。下面将详细讨论JavaScript优化的一些关键策略。 首先,...

    nodeJS优化js

    2. JavaScript优化:包括代码重构、消除冗余、算法优化等,旨在提高代码执行效率和加载速度。 3. UglifyJS:JavaScript压缩工具,能够混淆代码、删除空格和注释,减小文件大小。 4. 混淆代码:通过去除或加密汉字...

    js优化针对IE6.0起作用(详细整理)

    本文将详细讨论针对IE6.0起作用的js优化方法,包括字符串拼接、for循环优化、减少页面重绘、作用域链查找优化和避免双重解释等方面。 首先,关于字符串拼接的优化,原始的字符串拼接通常使用+=操作符,这种做法在...

    简单的成语小游戏js优化版

    这个优化版的游戏主要基于JavaScript(js)开发,因此,我们将深入探讨JavaScript在游戏开发中的应用,以及成语游戏可能涉及的编程技术。 JavaScript是一种广泛用于网页和网络应用的脚本语言,它在浏览器环境中执行...

    threejs性能优化与GPU优化.md

    threejs性能优化与GPU优化

    JavaScript优化方法.doc

    JavaScript 优化方法 本文将详细讲解 JavaScript 优化方法,以提高网站性能。作为一名网站开发 Web 前端工程师,对自己开发的网站项目应该尽可能地对其性能进行优化。本文将着重分析 JavaScript 的优化细节。 一、...

    js日历控件优化

    "js日历控件优化"的焦点在于提升用户体验、性能以及兼容性,使其更易用且适应不同场景。这里我们将深入探讨如何优化JavaScript日历控件,特别是那些包含时分秒选择,以及支持年月日显示的组件。 1. **性能优化**:...

    html5.js代码优化

    html5.js 代码优化

    js+sql优化处理

    首先,JavaScript优化主要包括以下几个方面: 1. **代码重构**:通过减少冗余代码,提高代码可读性和可维护性,避免不必要的计算和DOM操作。 2. **缓存利用**:使用变量存储重复计算的结果,或者利用浏览器缓存机制...

    JS性能优化框架

    标题:JS性能优化框架 描述:本文将深入探讨三种高效的JS框架,旨在通过采用先进的技术和策略来提升网页应用的性能。这些框架不仅能够优化资源加载流程,还能够改善代码执行效率,从而为用户提供更流畅、更快捷的...

    js lazyLoad 图片懒加载demo

    JavaScript(简称JS)是一种广泛用于网页和网络应用的编程...总的来说,这个项目是一个很好的学习和实践JavaScript懒加载技术的例子,通过它,你可以了解到如何有效地利用JavaScript优化网页性能,提高用户浏览体验。

    js css 优化软件

    在IT行业中,优化JavaScript(js)和CSS(css)是提升网页性能的关键步骤。这两个文件类型对于网页的呈现和交互性至关重要,但未优化的代码可能会导致加载速度慢,影响用户体验。下面,我们将深入探讨js和css优化的...

    JavaScript检查器和优化器.zip

    例如,Google的Closure Compiler是一个著名的JavaScript优化器,它将源代码转化为更高效的等效版本。Closure Compiler有三个编译级别:简单优化(SIMPLE)、高级优化(ADVANCED)和Whitespace Only,其中高级优化能...

    javascript项目优化总结.pdf

    以下是针对JavaScript优化的一些核心点,结合给定的文件内容进行详细解释: 1. **模块化与类编程**: - **模块化**:JavaScript 中可以通过立即执行函数表达式(IIFE)和对象字面量实现模块化,避免全局变量污染,...

    用 JS 编写的粒子群优化库_JavaScript_代码_下载

    用 JS 编写的粒子群优化库。适用于RequireJS,来自WebWorker,在node.js或普通浏览器环境中。 示例应用程序 simple优化一维函数的简单应用程序 simple-require和simple一样,除了使用 RequireJS simple-node一个...

Global site tag (gtag.js) - Google Analytics