最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

加速IE的Javascript document輸出的方法

 更新時間:2010年12月02日 16:02:13   作者:  
加入這樣的一行代碼IE的document的訪問速度至少可以提高5倍以上,對于頁面使用document的朋友絕對是個好方法。
將下列代碼加在JavaScript的最前面
復(fù)制代碼 代碼如下:

/*@cc_on _d=document;eval('var document=_d')@*/

加入這樣的一行代碼IE的document的訪問速度至少可以提高5倍以上
下面是加入前和加入后的測試比較代碼
復(fù)制代碼 代碼如下:

// Before
var date = new Date;
for (var i = 0; i < 100000; i++) document;
alert(new Date - date); // 643

復(fù)制代碼 代碼如下:

/*@cc_on _d=document;eval('var document=_d')@*/

// After
date = new Date;
for (var i = 0; i < 100000; i++) document;
alert(new Date - date); // 145

速度提高了不少吧!

解說:
首先,IE里document就這樣直接被調(diào)用的話被執(zhí)行的是window 對象的內(nèi)部函數(shù),而這個比較低效的。根據(jù)這一點(diǎn),下面的處理可以提高速度:
var doc = document;

document; // 慢
doc; // 這個比上面的(document)快

雖然像上面那么寫可以直接使用,但是之前用到document的地方都要去替換,這個有點(diǎn)麻煩了點(diǎn)吧。所以,看下面的:
var doc = document;
var document = doc;
可以實(shí)現(xiàn)的話那就太好了……

了解JavaScript的人應(yīng)該知道,JavaScript的變量是在最開始的時候就生成的,所以這里的document就變成了undefined了。
沒關(guān)系,繼續(xù)改進(jìn)~
var doc = document;
eval('var document = doc');

eval的作用就是在作用域范圍內(nèi)改變變量,這樣的話,后面的document就可以被正常使用了。
最后,加上只有在IE內(nèi)有效的條件,就像下面這樣就可以了~
復(fù)制代碼 代碼如下:

/*@cc_on
var doc = document;
eval('var document = doc');
@*/

舉一反三,像下面這樣的寫法,document以外的全局變量也可以用上面的方法,起到加速的作用。
復(fù)制代碼 代碼如下:

/*@cc_on
eval((function(props) {
var code = [];
for (var i = 0 l = props.length;i<l;i++){
var prop = props[i];
window['_'+prop]=window[prop];
code.push(prop+'=_'+prop)
}
return ‘var ‘+code.join(',');
})('document self top parent alert setInterval clearInterval
setTimeout clearTimeout'.split(' ‘)));
@*/

下面是Franky的回復(fù):
首先,IE里document就這樣直接被調(diào)用的話被執(zhí)行的是window 對象的內(nèi)部函數(shù),而這個比較低效的。根據(jù)這一點(diǎn),下面的處理可以提高速度:

這個說法 不對..

之所以 你的測試 前后有差異,主要區(qū)別在于作用域鏈查找.
你的代碼 是在global 執(zhí)行環(huán)境.所以IE下,會訪在global對象去查找 key 為'document'的成員. 而這個對象在ie中是一個com+實(shí)現(xiàn)的宿主對象. 他不在global中. global中沒有,則去window中再次查找.造成了速度變慢.

同樣的全局對象 Math. 就不會帶來這個問題.原因是Math 在 Global上. 一次作用域鏈查找就找到了.

對于優(yōu)化. 一個建議就是
var win = window, doc = document,undefined;
每層作用域內(nèi),如果這個成員使用超過兩次,就有意義.

而如果你只在全局作用域 使用一次 ie 條件注釋 ,首先 非ie就無法享受到作用域被縮短的好處. 當(dāng)然非ie 不會存在global->window的 多一次責(zé)任鏈查找.

這里的優(yōu)化核心,就是縮短作用域鏈. 雖然opera chrome safarai等較新版本,對作用域鏈查找做了優(yōu)化. 但是我們認(rèn)為的縮短作用域鏈. 對老的瀏覽器是有積極作用的.且對具備優(yōu)化的瀏覽器,也不會帶來過于負(fù)的面影響.

相關(guān)文章

  • JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

    JavaScript中判斷數(shù)據(jù)類型的方法總結(jié)

    這篇文章主要為大家詳細(xì)介紹了一些JavaScript中判斷數(shù)據(jù)類型的方法,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價值,需要的小伙伴可以了解一下
    2023-07-07
  • JS本地刷新返回上一頁代碼

    JS本地刷新返回上一頁代碼

    返回上一頁并刷新在此功能有利于用戶的體驗(yàn),是每一個web開發(fā)人員所必備的一項,這篇文章主要介紹了JS本地刷新返回上一頁代碼,感興趣的小伙伴們可以參考一下
    2016-07-07
  • webpack4.x打包過程詳解

    webpack4.x打包過程詳解

    這篇文章主要介紹了webpack4.x打包過程詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 使用javascript實(shí)現(xiàn)Iframe自適應(yīng)高度

    使用javascript實(shí)現(xiàn)Iframe自適應(yīng)高度

    這篇文章主要介紹了使用javascript實(shí)現(xiàn)Iframe自適應(yīng)高度,需要的朋友可以參考下
    2014-12-12
  • JavaScript實(shí)現(xiàn)的前端AES加密解密功能【基于CryptoJS】

    JavaScript實(shí)現(xiàn)的前端AES加密解密功能【基于CryptoJS】

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的前端AES加密解密功能,涉及javascript基于CryptoJS插件進(jìn)行AES加密解密操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • JS操作字符串的一些常見內(nèi)置方法

    JS操作字符串的一些常見內(nèi)置方法

    這篇文章主要給大家介紹了關(guān)于JS操作字符串的一些常見內(nèi)置方法,JavaScript中有許多常用的數(shù)組和字符串操作函數(shù),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • 如何自定義微信小程序tabbar上邊框的顏色

    如何自定義微信小程序tabbar上邊框的顏色

    這篇文章主要介紹了如何自定義微信小程序tabbar上邊框的顏色,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • 小程序雙頭slider選擇器的實(shí)現(xiàn)示例

    小程序雙頭slider選擇器的實(shí)現(xiàn)示例

    這篇文章主要介紹了小程序雙頭slider選擇器的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • 泛談JS邏輯判斷選擇器 || &&

    泛談JS邏輯判斷選擇器 || &&

    這篇文章主要介紹了JS邏輯判斷選擇器 || &&,下面我們來一起學(xué)習(xí)吧
    2019-05-05
  • JS隨拖拽速度設(shè)置傾斜角度的實(shí)現(xiàn)代碼

    JS隨拖拽速度設(shè)置傾斜角度的實(shí)現(xiàn)代碼

    這篇文章主要給大家介紹了JS如何隨拖拽速度設(shè)置傾斜角度,文中有詳細(xì)的代碼講解,對大家的學(xué)習(xí)或工作有一定的幫助,感興趣的小伙伴可以自己動手嘗試一下
    2023-09-09

最新評論

古浪县| 淮北市| 石家庄市| 青阳县| 酉阳| 乐至县| 普兰县| 原平市| 花莲县| 邓州市| 富顺县| 长宁区| 临城县| 张家川| 苗栗市| 榆中县| 伊宁县| 时尚| 托里县| 电白县| 台中市| 金昌市| 安远县| 随州市| 巩义市| 达日县| 贡嘎县| 澎湖县| 五大连池市| 潼关县| 凌海市| 三明市| 肃宁县| 桐柏县| 枣庄市| 敦煌市| 新邵县| 永福县| 丹棱县| 凤翔县| 镇沅|