IE JavaScript 最佳实践

1
使用 var 定义局部变量

2
尽可能缓存变量,查询结果,DOM元素

3
缓存函数值

4
避免使用 with

5
使用 Array 拼接字符串

6
节制eval的使用

7
转换较大的switch为查询

8
不要使用 setter/getter 方法,直接使用变量

9
尽量避免使用闭包

10
使用 document.createDocumentFragment() 创建 DOM

11
使用 cloneNode 代替 createElement

12
使用一次innerHTML赋值代替构建dom元素

13
使用firstChild和nextSibling代替childNodes遍历dom元素

14
顺序无关的遍历时,用while替代for

15
IE, switch分支选择的效率高于if,在IE下尤为明显。4分支的测试,IE下switch的执行时间约为if的一半。

16
setInterval 替换 setTimeout

17
eval、Function、execScript等语句会再次使用javascript解析引擎进行解析,需要消耗大量的执行时间

18
巧用||和&&布尔运算符
前:
function eventHandler (e) {
if(!e) e = window.event;
}
后:
function eventHandler (e) {
e = e || window.event;
}
前:
if (myobj) {
doSomething(myobj);
}
后:
myobj && doSomething(myobj);

19
使用数组的splice方法释放数组中不用的item

20
释放dom元素占用的内存
将dom元素的innerHTML设置为空字符串,可以释放其子元素占用的内存。

21
释放javascript对象
对象:obj = null
对象属性:delete obj.myproperty
数组item:使用数组的splice方法释放数组中不用的item

22
尽量减少样式

23
简化选择器 ID 选择器 > class

24
尽量减少页面重新布局

25
使用本地JSON对象

26
在整个拖动过程中,浏览器要不断重新宣染容器及其内部所有结点的相关属性,任务量大,触发又很频繁,CPU占用就会很高。改进这样的拖动效果,可以改成:按下鼠标时,是拖动一个独立的空DIV,松开鼠标时再把真正要移动的窗口重新定位到目标位置就行。这样在拖动过程中,浏览器只需要宣染一个div

27
页面DOM元素过多,会导致浏览器JS运行和DOM渲染效率降低

28
类型转换
把数字转换成字符串,应用”" + 1
浮点数转换成整型,这个更容易出错,很多人喜欢使用parseInt(),其实parseInt()是用于将字符串转换成数字,而不是浮点数和整型之间的转换,我们应该使用Math.floor()或者Math.round()。
对于自定义的对象,如果定义了toString()方法来进行类型转换的话,推荐显式调用toString(),因为内部的操作在尝试所有可能性之后,会尝试对象的toString()方法尝试能否转化为String,所以直接调用这个方法效率会更高

29
使用直接量

30
对字符串进行循环操作,譬如替换、查找,应使用正则表达式,因为本身JavaScript的循环速度就比较慢,而正则表达式的操作是用C写成的语言的API,性能很好

31
对象查询

使用[""]查询要比.items()更快

32
对动态生成的元素进行缓存,一方面可以减少与服务器的交互及负载,同时也能够提升页面执行效率,缓存当善用之。

33
用 class 替代 style

34
动态创建 script 标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值