日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

詳細(xì)整理 js優(yōu)化針對(duì)IE6.0起作用( 三 )


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("");
var end = new Date().getTime();
alert("用時(shí) "(end - start)" 毫秒");
}

在例子中,我只是用了100次的循環(huán),因?yàn)槿绻?0000次循環(huán)的話,瀏覽器基本上就卡住不動(dòng)了,但是即使是100次的循環(huán),我們看看下面的執(zhí)行結(jié)果 。

詳細(xì)整理 js優(yōu)化針對(duì)IE6.0起作用


可以看到的是,這簡(jiǎn)直是一個(gè)驚人的結(jié)果,僅僅100次的循環(huán),不管是在什么瀏覽器下,都出現(xiàn)了如此之大的差別,另外我們還發(fā)現(xiàn),在這里,IE6的執(zhí)行效率居然比起Firefox還要好很多,可見Firefox在頁(yè)面重繪這方面并沒有做一些的優(yōu)化 。這里還要注意的是,一般影響頁(yè)面重繪的不僅僅是innerHTML,如果改變?cè)氐臉邮?,位置等情況都會(huì)觸發(fā)頁(yè)面重繪,所以在平時(shí)一定要注意這點(diǎn) 。
4、減少作用域鏈上的查找次數(shù)
我們知道,js代碼在執(zhí)行的時(shí)候,如果需要訪問一個(gè)變量或者一個(gè)函數(shù)的時(shí)候,它需要遍歷當(dāng)前執(zhí)行環(huán)境的作用域鏈,而遍歷是從這個(gè)作用域鏈的前端一級(jí)一級(jí)的向后遍歷,直到全局執(zhí)行環(huán)境,所以這里往往會(huì)出現(xiàn)一個(gè)情況,那就是如果我們需要經(jīng)常訪問全局環(huán)境的變量對(duì)象的時(shí)候,我們每次都必須在當(dāng)前作用域鏈上一級(jí)一級(jí)的遍歷,這顯然是比較耗時(shí)的,我們看下面的例子:
復(fù)制代碼 代碼如下:
div id="demo"/div
input id="but1" type="button" onclick="func1()" value="https://www.rkxy.com.cn/dnjc/效率低"/
input id="but2" type="button" onclick="func2()" value="https://www.rkxy.com.cn/dnjc/效率高"/

function func1(){
var start = new Date().getTime();
for(var i = 0; i10000; i){
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
var but1 = document.getElementById("but1");
var but2 = document.getElementById("but2");
var inputs = document.getElementsByTagName("input");
var divs = document.getElementsByTagName("div");
}
var end = new Date().getTime();
alert("用時(shí) "(end - start)" 毫秒");
}
function func2(){
var start = new Date().getTime();
var doc = document;
for(var i = 0; i10000; i){
var but1 = doc.getElementById("but1");
var but2 = doc.getElementById("but2");
var inputs = doc.getElementsByTagName("input");
var divs = doc.getElementsByTagName("div");
var but1 = doc.getElementById("but1");
var but2 = doc.getElementById("but2");
var inputs = doc.getElementsByTagName("input");
var divs = doc.getElementsByTagName("div");
var but1 = doc.getElementById("but1");
var but2 = doc.getElementById("but2");
var inputs = doc.getElementsByTagName("input");
var divs = doc.getElementsByTagName("div");
var but1 = doc.getElementById("but1");

推薦閱讀