js優(yōu)化針對IE6.0起作用,總結(jié)一下幾點:
一,字符串拼接:用數(shù)組拼接
復(fù)制代碼 代碼如下:
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 循環(huán):先把長度算出來直接調(diào)用
復(fù)制代碼 代碼如下:
function func2(){
var divs = document.getElementsByTagName("div");
var start = new Date().getTime();
for(var i = 0, len = divs.length; ilen; i){
//"效率高"
}
三,減少頁面的重繪:可以用一中把頁面拼接起來然后再賦值給頁面
復(fù)制代碼 代碼如下:
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("");
四,減少作用域鏈上的查找次數(shù):如果取多個頁面值則定義一個document對象,再調(diào)用這個對象
復(fù)制代碼 代碼如下:
var doc = document;
for(var i = 0; i10000; i){
var but1 = doc.getElementById("but1");
var but2 = doc.getElementById("but2");
var inputs = doc.getElementsByTagName("input");
}
}
五,避免雙重解釋:不要重復(fù)調(diào)用函數(shù)或者方法
1、字符串的拼接
字符串的拼接在我們開發(fā)中會經(jīng)常遇到,所以我把其放在首位,我們往往習(xí)慣的直接用 =的方式來拼接字符串,其實這種拼接的方式效率非常的低,我們可以用一種巧妙的方法來實現(xiàn)字符串的拼接,那就是利用數(shù)組的join方法 。
復(fù)制代碼 代碼如下:
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)"毫秒");
}
我們看看其在不同瀏覽器下執(zhí)行的情況

我們會發(fā)現(xiàn),在IE6下其差別是相當(dāng)明顯的,其實這種情況在IE的高版本中體現(xiàn)的也非常明顯,但是在Firefox下卻沒有多大的區(qū)別,相反第二種的相對效率還要低點,不過只是差別2ms左右,而Chrome也和Firefox類似 。另外在這里順便說明一下,在我們給數(shù)組添加元素的時候,很多人喜歡用數(shù)組的原生的方法push,其實直接用arr[i]或者arr[arr.length]的方式要快一點,大概在10000次循環(huán)的情況IE瀏覽器下會有十幾毫秒的差別 。
2、for循環(huán)
for循環(huán)是我們經(jīng)常會遇到的情況,我們先看看下面例子:
復(fù)制代碼 代碼如下:
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){
//"效率低"
推薦閱讀
- 旺旺聊天軟件詳細(xì)介紹
- opporenoace手機(jī)價格詳細(xì)介紹
- opporenoace屏幕多大詳細(xì)介紹
- 使用glary utilities pro整理優(yōu)化磁盤碎片的方法步驟
- 愛奇藝彈幕怎么沒了詳細(xì)介紹
- 蘋果x怎么截圖詳細(xì)教程
- nfc怎么用詳細(xì)教程
- 手機(jī)內(nèi)存不足怎么清理詳細(xì)介紹
- 夜神模擬器怎么卸載詳細(xì)教程
- 使用ashampoo uninstaller優(yōu)化系統(tǒng)注冊表的方法步驟
