日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jQuery源码阅读3— bulidFragment( )

發布時間:2025/3/17 编程问答 11 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jQuery源码阅读3— bulidFragment( ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

jQuery的buildFragment函數,主要是將傳入的HTML代碼用document.createDocumentFragment轉變成文檔碎片,具體細節如下圖:

圖片來源于jQuery技術內幕:

jQuery.buildFragment = function( args, nodes, scripts ) {
//args:準備轉換為DOM結構的THML代碼
//nodes:數組,含有DOM元素或者jquery對象,用于修正創建文檔片段DocumentFragment文檔對象
//scripts:存放HTML代碼的script元素
var fragment, cacheable, cacheresults, doc,
first = args[ 0 ];

if ( nodes && nodes[0] ) {doc = nodes[0].ownerDocument || nodes[0];//ownerDocument取節點所在的整個DOM樹//修正nodes里面的參數 }if ( !doc.createDocumentFragment ) {doc = document;//如果不存在createDocumentFragment則用DOM1的方法 }if ( args.length === 1 && typeof first === "string" && first.length < 512 && doc === document &&first.charAt(0) === "<" && !rnocache.test( first ) &&(jQuery.support.checkClone || !rchecked.test( first )) &&(jQuery.support.html5Clone || !rnoshimcache.test( first )) ) {// rnocache = /<(?:script|object|embed|option|style)/i,// rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,// rnoshimcache = new RegExp("<(?:" + nodeNames + ")", "i"),// 判斷是否符合緩存// 1、 args.length === 1 : args長度大于1,且第一個元素是字符串// 2、 first.length < 512 : 長度小于512字節,太大就不緩存了// 3、 doc === document : doc是當前文檔對象,不緩存其他框架(iframe)// 4、 first.charAt(0) === "<" : HTML代碼以左尖括號開頭,即只緩存DOM元素,不緩存文本節點// 5、不能含有<script>、<object>、<embed>、<option>、<style>// 6、jQuery.support.html5Clone || !rnoshimcache.test( first ) , 可以復制HTML5元素或者HTML代碼中不含有HTML標簽cacheable = true;// 在使用轉換后的DOM元素時,如果cacheable為true,則必須先復制一份再使用,否則可以直接使用cacheresults = jQuery.fragments[ first ];//嘗試從緩存讀數據if ( cacheresults && cacheresults !== 1 ) {fragment = cacheresults;} }if ( !fragment ) {fragment = doc.createDocumentFragment();jQuery.clean( args, doc, fragment, scripts );// jQuery.clean可以將HTML代碼轉換為DOM節點 }if ( cacheable ) {jQuery.fragments[ first ] = cacheresults ? fragment : 1;// 如果符合緩存,則把轉換后的DOM元素放入緩存對象jQuery.fragments中 }return { fragment: fragment, cacheable: cacheable };

};

總結

以上是生活随笔為你收集整理的jQuery源码阅读3— bulidFragment( )的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 在线观看欧美一区二区三区 | aⅴ天堂网 | аⅴ资源中文在线天堂 | 在线免费成人网 | 狠狠人妻久久久久久综合蜜桃 | 又黄又爽的视频在线观看 | 九月婷婷色 | 91精品在线视频观看 | 射射综合网| 嫩草影院久久 | 特色黄色片 | 青青草综合 | 黄色片久久久久 | 日韩xxx视频 | 青青草欧美 | 中文字幕人妻熟女在线 | 国产一区2| 久久激情网 | 日韩中文三级 | 国产一区二区在线观看免费 | 欧美三级一区二区 | 91色视频 | 欧美日韩精品久久久 | 亚洲爆爽av| 香蕉污视频 | 口舌奴vk| 永久免费看黄 | 九九人人 | 久久久久久久人妻无码中文字幕爆 | 青青草手机在线视频 | 6090伦理| 黑人精品xxx一区一二区 | 精品国产一区二区三区久久 | 一级片在线免费观看 | 中文字幕2区 | www.国产黄色 | 91av影视 | 国产奶水涨喷在线播放 | 在线成人日韩 | 香蕉久久网站 | 永久免费未网 | 精品国产黄 | 永久免费国产 | av无码精品一区二区三区宅噜噜 | www国产无套内射com | 国产成人主播 | 成人免费无码av | 午夜精品影院 | 欧洲女性下面有没有毛发 | 日本亚洲欧美 | 国产精品麻豆视频 | 素人一区 | 亚洲毛片久久 | 性淫影院 | 一级生活毛片 | 欧美精品久久久久久 | 爱操av | 三级黄色网络 | 高跟91娇喘 | 色就是色亚洲色图 | japanese中文字幕 | 国产精品久久久网站 | 日韩av男人天堂 | 成人交性视频免费看 | 中国黄色片子 | 国产精品资源在线观看 | 天堂网a | 亚洲国产天堂av | 欧美一区二区三区免费视频 | 国产精品免费在线 | 国产欧美精品区一区二区三区 | 亚洲狼人伊人 | 自拍偷拍电影 | 黑人玩弄人妻一区二区三区影院 | 久久在线视频 | 久久久久久av无码免费网站 | 超碰免费视 | 欧美特级黄色片 | 日本zzjj | 九色影视 | 97精品国产97久久久久久春色 | 摸摸大奶子| 日本在线高清 | 奇米网狠狠干 | 中国三级视频 | 在线美女av| 麻豆网址 | 日韩射| 狠狠av | 久久精精品久久久久噜噜 | 香蕉a视频 | 成人精品一区二区三区四区 | 欧美精品免费一区二区 | 国产奶水涨喷在线播放 | 福利在线免费视频 | 黑人巨大猛烈捣出白浆 | 亚洲午夜av久久乱码 | 亚洲自拍偷拍欧美 | 青娱乐国产在线视频 |