`
- 浏览:
367932 次
- 性别:
-
1.定义局部变量。对于当前函数作用域内,如果需要使用这个作用域外部的一些变量,那么就尽量使用局部变量储存外部的变量吧,特别是对于嵌套多级的作用域查询,这个耗时也是比较严重的。还有就是获取DOM节点、NodeList、HTMLCollection等等,可以将NodeList、HTMLCollection转化为数组的形式进行操作,减少DOM即时更新所造成的性能消耗。
2.不要使用with语句。with语句会在当前作用域下面增加作用域链,造成当前作用域下面变量的遍历性能消耗更大。
3.对于闭包的使用,节省点,不要太过多了。闭包就是提供一个所谓的“封闭式”的作用域,只允许向包含它向别人访问,而不允许别人访问它。但是声明一个闭包的代价比声明普通的函数的代价是要更高的,况且还有IE下内存泄漏的危险。
4.获取字面量对象的属性和数组的项比获取变量更慢。如果你要获取一些数据的时候,使用变量比用数组、字面量对象的索引来访问来的更快。在循环中经常会需要访问数据,使用变量存储一下,来的更快。
5.在数组中不要嵌套的过深。js中没有二维数组的概念,但是可以自己编写一个二维数组,并且可以无限的嵌套下去,json很经常就是这么干的。但是嵌套的越深,访问数组中的项就更难了,级数和性能消耗成正比的。
6.少用for-in循环。众所周知,for-in用于遍历对象的属性和方法,它所要消耗比for、while、do-while更多的性能。在for-in循环中,对于每一个循环,javasript需要创建一个函数来处理每一个循环,这就带来这么两个性能问题:函数创建、销毁的过程;这个函数在创建之后,又会储存它直接上级的作用域的活动对象。
7.对于循环,合并控制循环的语句,以及控制变量变化方式。在一个控制循环的语句中,比如循环结束条件、索引的递增等等,如果可以优化这些操作,那么对于整个循环的性能是有帮助的。比如对于结束循环条件:for(var i =0;i<10;i++),每次循环的时候,都要执行:#1 i是否存在;#2 i是否 < 10;#3 i++。优化一下,使用while或者do-while:var i = 9;do { ...} while(i--),那么这样之后,每一个循环需要执行的操作:#1 i--;#2 i是否为true。这样就对循环条件的执行步骤进行了简化。
8.对于HTMLCollection,尽量定义一个数组来储存它。这样可以避免DOM即时更新所造成的影响。
9.在操作DOM节点的时候,尽量让它飘了吧。让DOM元素脱离document之后再对它进行操作,最后再重新插回document中,最小化reflow(改变了DOM元素布局性的相关的属性之后就会触发,比如:height、width等)、repaint(改变了DOM元素显示上的变化就会触发,比如:background、color等)所造成的影响。
10.改变DOM节点样式的时候,尽量改变DOM元素的class而不是style属性。原因你懂的……
规则是死的,不能泛用;规则又是活的,看你是否活学活用,用到思维里去,在你编写代码的时候就可以随手写出符合这些规则的代码。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
为此,开发者们常常使用各种工具来优化前端资源,其中minify v2.1.4 beta就是一款强大的CSS和JavaScript优化压缩工具。本文将深入探讨minify的功能、安装与使用方法,以及它如何提升网页性能。 minify的核心功能...
在部分内容中,提及了Node.js的性能优化涉及许多层面,包括使用最新的Node.js JavaScript库、C++绑定、libuv、V8等底层技术。这些底层组件的性能提升,直接关联到Node.js应用的性能。例如,V8引擎的优化,包括了对...
《JS万年历完美优化版》是一款前端JavaScript日期选择器,专为提高用户体验和灵活性而设计。这款控件以其强大的可扩展性和易于集成的特点脱颖而出,无论是对于初学者还是经验丰富的开发者,都能快速上手并应用到项目...
本篇内容将深入探讨Web前端性能优化的思路与学习方法,结合WebQQ、QQ互联、QQ商家等大型项目研发中的实践经验,提供一套系统的优化框架。 首先,前端性能优化可以从以下几个层面展开: 1. 网络层面优化:优化网络...
这篇经验分享主要涵盖了四个核心知识点,旨在帮助前端开发者理解和实践性能优化技巧。 1. 减少HTTP请求 HTTP请求是浏览器与服务器交互的基础,但每一次请求都会带来延迟和性能消耗。在资源加载时,合并图片(如使用...
接下来是jsEclipse,这款插件是由Eclipse社区成员开发的,专门为JavaScript开发优化。jsEclipse不仅具备基本的代码编辑功能,如语法高亮、代码自动完成,还提供了一整套的JavaScript开发工具,如源码映射(source ...
总的来说,《微软JavaScript手册js.chm》是一本全面覆盖JavaScript基础知识到高级特性的宝典,无论是新手还是经验丰富的开发者,都能从中获益。通过深入学习并实践手册中的知识,你将能够更好地理解和应用JavaScript...
美团买菜iOS工程师王梓童分享了前端性能优化的实践经验,包括性能优化思路、措施和未来规划。 一、前端页面加载性能优化思路 前端页面加载性能优化的思路包括多个方面: 1. 首屏优化:首屏时间是用户体验的关键...
这个压缩包中的代码实例对于学习和提升JavaScript技能非常有帮助,涵盖了从基础到进阶的多个方面,无论是初学者还是经验丰富的开发者,都能从中受益。通过研究和实践这些代码,可以加深对JavaScript特性和应用场景的...
本文将深入探讨“大型网站性能优化方案”,基于多年的实践经验,为优化工作提供指导。 首先,我们需要理解网站性能的重要性。快速加载的网站能够提高用户满意度,降低跳出率,从而增加转化率。而搜索引擎也将页面...
JavaScript画图库,如标题所言的"Javascript画图js包",是一种允许开发者在网页上绘制图形的工具。在JavaScript的世界里,这样的库通常提供了一...对于有经验的开发者来说,这可能是进一步优化和定制自己项目的好起点。
JavaScript,简称JS,是Web开发中的重要脚本语言,用于实现客户端的动态效果和交互。在网页设计中,JavaScript特效的运用极大地提升了用户体验,让网页变得更加生动有趣。本资源"JS特效大全JavaScript特效"集合了...
"开心农场 JS版"是一个基于JavaScript的在线游戏项目,它模拟了现实生活中农场经营的场景,用户可以在虚拟的农场上种植、收获作物,饲养动物,体验农场生活。在这个项目中,JavaScript作为主要的编程语言,负责处理...
7. **原型扩展**:`jsjava-prototype-2.0.js`可能扩展了JavaScript原型链,增加了新方法或优化了原有方法,便于开发和调试。 8. **I/O操作**:`jsjava-io-2.0.js`可能提供了对本地存储、文件读写、数据序列化等操作...
适用人群:适用于Node.js初学者与具有一定的经验开发者作为面试复习参考资料。 使用场景及目标:帮助掌握面试官关注的技能点;理解Node.js内部原理,能够设计高性能服务端应用程序。 其他说明:本文不仅适合于自我...
"china.js"是一个JavaScript库,主要用于处理与中国相关的数据和功能,比如省份、城市、区县等地理信息,或者中文字符编码处理。这个库在网页开发中可能会被用来创建交互式的中国地图,提供地理位置的选择和查询功能...
9. **性能优化和调试**:指导开发者如何写出高性能的JavaScript代码,并提供了调试技巧和工具。 10. **错误处理**:讨论了异常处理机制,以及如何有效地定位和修复程序错误。 通过这本书,无论是初学者还是有经验...
这个名为“JavaScript学习资料整理”的系列资源,旨在帮助开发者构建完整的JavaScript前端知识体系,从而深入理解和积累JavaScript的开发经验。通过研究这个压缩包中的内容,我们可以系统地学习JavaScript的各种关键...
9. **性能优化**:JS脚本可能会涉及到性能优化技巧,如避免全局查找、减少DOM操作、合理使用缓存等。 10. **错误处理**:了解如何使用try...catch语句进行异常处理,以及如何利用console对象进行调试。 11. **模块...
通过以上功能,鬼鬼JS调试工具7.0版为JavaScript开发者提供了一套全面的调试环境,无论是新手还是经验丰富的开发者,都能从中受益。使用此工具,可以更有效地调试和优化JavaScript代码,提升开发质量和效率,从而在...