一,文件下载
? 1.外链js文件。
? 2.减少外链js文件。
? 3.减少功能类似的js库的共存。
二,DOM元素修改
? 1.最大限度地减少DOM更新。
? 2.缓存需要多次调用的DOM。
? 3.document. getElementByName()的执行时间可能会随着页面的增大而变长。
? 4.从内到外appendChild
? 5.用nexSibling遍历提高效率
? 6.尽量使用innerHTML代替removeChild
三,程序优化
? 1.少用for...in:它需要查询散列键。
? 2.for循环次数非常大又不照顾循序时,可以采用递减的方法减少计算量。
??? 2.1for循环时缓存循环长度;
? 3.多用局部变量,少用全局变量:局部变量放在函数的栈中,而全局变量则是全局对象的成员。采用面向对象的编程思想时,把对象的方法或者属性赋值给特定环境下的局部变量,加快访问速度,特别是有多重引用的时候。?
? 4.对于多字符串链接、一个字符串多次链接其他字符串时,可以考虑将字符串缓存到数组里,最后用转换成字符串。
??? 4.1 s+=s1优于s=s+s1
? 5.数字转字符串("" + ) > String() > .toString() > new String() 。""+编译时就能使用的内部操作。数字String()属于内部函数,所以速度很快,而.toString()要查询原型中的函数,所以速度逊色一些,new String()用于返回一个精确的副本。
? 6.尽量使用编译时就能使用的内部操作要比运行时使用的用户操作要快。
? 7.直接量赋值:{}、[]、//、等
? 8.避免使用with:with会改变原型链,增加访问代价。
四,遗忘的事情
? 1.没及时清理定时器
? 2.没清理绑定的事件