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

js优化针对IE6.0起作用,总结一下几点:
一,字符串拼接:用数组拼接
复制代码 代码如下:
function func2(){
var start = new Date().getTime();
var array = [];
for(var i = 0; i10000; i){
array[i] = "input type=’button’ value=https://www.rkxy.com.cn/dnjc/’a’";
}

二,for 循环:先把长度算出来直接调用
复制代码 代码如下:
function func2(){
var divs = document.getElementsByTagName("div");
var start = new Date().getTime();
for(var i = 0, len = divs.length; ilen; i){
//"效率高"
}

三,减少页面的重绘:可以用一中把页面拼接起来然后再赋值给页面
复制代码 代码如下:
function func2(){
var obj = document.getElementById("demo");
var start = new Date().getTime();
var arr = [];
for(var i = 0; i100; i){
arr[i] = stri;
}
obj.innerHTML = arr.join("");

四,减少作用域链上的查找次数:如果取多个页面值则定义一个document对象,再调用这个对象
复制代码 代码如下:
var doc = document;
for(var i = 0; i10000; i){
var but1 = doc.getElementById("but1");
var but2 = doc.getElementById("but2");
var inputs = doc.getElementsByTagName("input");
}
}

五,避免双重解释:不要重复调用函数或者方法
1、字符串的拼接
字符串的拼接在我们开发中会经常遇到,所以我把其放在首位,我们往往习惯的直接用 =的方式来拼接字符串,其实这种拼接的方式效率非常的低,我们可以用一种巧妙的方法来实现字符串的拼接,那就是利用数组的join方法 。
复制代码 代码如下:
div class="one" id="one"/div
input type="button" value="https://www.rkxy.com.cn/dnjc/效率低" onclick="func1()" /
input type="button" value="https://www.rkxy.com.cn/dnjc/效率高" onclick="func2()" /

//效率低的
function func1(){
var start = new Date().getTime();
var template = "";
for(var i = 0; i10000; i){
template= "input type=’button’ value=https://www.rkxy.com.cn/dnjc/’a’";
}
var end = new Date().getTime();
document.getElementById("one").innerHTML = template;
alert("用时:"(end - start)"毫秒");
}
//效率高的
function func2(){
var start = new Date().getTime();
var array = [];
for(var i = 0; i10000; i){
array[i] = "input type=’button’ value=https://www.rkxy.com.cn/dnjc/’a’";
}
var end = new Date().getTime();
document.getElementById("one").innerHTML = array.join("");
alert("用时:"(end - start)"毫秒");
}

我们看看其在不同浏览器下执行的情况

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


我们会发现,在IE6下其差别是相当明显的,其实这种情况在IE的高版本中体现的也非常明显,但是在Firefox下却没有多大的区别,相反第二种的相对效率还要低点,不过只是差别2ms左右,而Chrome也和Firefox类似 。另外在这里顺便说明一下,在我们给数组添加元素的时候,很多人喜欢用数组的原生的方法push,其实直接用arr[i]或者arr[arr.length]的方式要快一点,大概在10000次循环的情况IE浏览器下会有十几毫秒的差别 。
2、for循环
for循环是我们经常会遇到的情况,我们先看看下面例子:
复制代码 代码如下:
input type="button" value="https://www.rkxy.com.cn/dnjc/效率低" onclick="func1()" /
input type="button" value="https://www.rkxy.com.cn/dnjc/效率高" onclick="func2()" /
var arr = [];
for(var i = 0; i10000; i){
arr[i] = "div"i"/div";
}
document.body.innerHTML= arr.join("");

//效率低的
function func1(){
var divs = document.getElementsByTagName("div");
var start = new Date().getTime();
for(var i = 0; idivs.length; i){
//"效率低"

推荐阅读