天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

javascript 異步的innerHTML使用分析

當然,這個分時加載技術只是一個輔助技術,本身沒有添加節點的能力。如今,另一種更奇特的技術Asynchronous innerHTML又被開發出來了,不能不贊一下外國人在這方面研究是非常超前的。
復制代碼 代碼如下:
function asyncInnerHTML(HTML, callback) {
var temp = document.createElement('div'),
frag = document.createDocumentFragment();
temp.innerHTML = HTML;//要加入的內容先放到這里。
(function(){
if(temp.firstChild) {
frag.appendChild(temp.firstChild);//然后一點點挪到文檔碎片
setTimeout(arguments.callee, 0);//利用異步調用自身拼湊文檔碎片,直到div的節點被搬空
} else {
callback(frag);//這里才是真正執行插入節點的操作
}
})();
}

此技術的優點:
1. 利用閉包解決 IE6 的內存溢出問題
2. 利用setTimeout(fn,0) 這個hack將操作從隊列中拖出,防止瀏覽器假死
3. 利用Document Fragment減少對頁面的渲染次數
4. 回調的節點可以使用 DOM 標準的手法(appendChild)插入(如IE的table,tbody,tr,td等標簽的innerHTML是只讀的)
使用方法:
復制代碼 代碼如下:
var htmlStr = '<div><p>...</p><p>...</p><div><div>...</div>';
asyncInnerHTML(htmlStr, function(fragment){
// You can treat 'fragment' as a regular node.
document.body.appendChild(fragment);
});

不過,這個方法在table中添加節點時并不是個個瀏覽器都行得通,不得不說是一大敗筆。經測試IE8,IE6,FF3.5渲染出現差錯,chrome,safari4,opera10等能完好地把表格渲染出來。估計是IE8等在把節點轉移到文檔碎片時發生節點丟失現象。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]
在FF3.5的firebug顯示下,table新添加的節點,標簽都丟失了。
flagment
在IE8的開發人員工具中,我們發現table新添加節點出錯嚴重,見于IE一慣的表現,這是很正常的事!
flagment
相關演示可見無憂的貼子,發現這種方法不是最佳的插入動態內容的方法。

[Ctrl+A 全選 注:如需引入外部Js需刷新才能執行]

JavaScript技術javascript 異步的innerHTML使用分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 日本视频中文字幕一区二区 | 国产成人综合95精品视频免费 | 亚洲2017久无码 | 日产日韩亚洲欧美综合搜索 | 超碰在线97av视频免费 | 色青青草原桃花久久综合 | 日韩精品久久久久久久电影 | 韩国精品无码少妇在线观看网站 | 日本精品久久久久中文字幕2 | 久久视频这里只精品6国产 久久视频在线视频观品15 | 爱爱好爽好大好紧视频 | 办公室日本肉丝OL在线 | caoporn超碰| 国产树林野战在线播放 | 99久久久久精品国产免费麻豆 | 微拍秒拍99福利精品小视频 | 最新亚洲一区二区三区四区 | 国产成人精品免费视频大全可播放的 | 香港论理午夜电影网 | 欧美日韩1区 | 小小水蜜桃视频高清在线观看免费 | 999精品影视在线观看 | 熟女人妻AV五十路六十路 | 国产精品日本欧美一区二区 | 在线免费观看成年人视频 | 国产a级午夜毛片 | yw193龙物免费官网在线 | 国产在线一区二区AV视频 | 天天躁夜夜踩很很踩2022 | 朝鲜黄色录像 | 果冻传媒2021精品影视 | 国产精品成人久久久久A伋 国产精品成人观看视频免费 | 青青青手机视频 | 精品国产在线观看福利 | 忘忧草在线社区WWW日本直播 | 在线视频 国产 日韩 欧美 | 99热成人精品国产免男男 | 久久精视频| 色欲AV精品一区二区入口 | 牛牛在线(正)精品视频 | 日产精品久久久久久久蜜殿 |