成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

jQuery函數parseHTML中的parsed分析

buildFragment函數及其參數在jQuery的核心函數parseHTML中,涉及到了一個關鍵的函數buildFragment。關于buildFragment,網上有不少研究文檔,認為通過bui

buildFragment函數及其參數

在jQuery的核心函數parseHTML中,涉及到了一個關鍵的函數buildFragment。關于buildFragment,網上有不少研究文檔,認為通過buildFragment返回的parsed對象可以幫助parseHTML返回一個代碼片段。

buildFragment函數的具體代碼

根據jQuery的源碼,在第500行處可以找到buildFragment函數的定義:parsed (); 這里讓人不理解buildGragment到底是什么,以及buildGragment函數里面的三個參數:fragment、cacheable、cachehit。

在jQuery的代碼中,可以找到關于buildFragment函數的具體代碼,大約在第40行,其中的參數是args、context和scripts。args從英文意思來看,是參數的意思;context的意思是上下文環(huán)境;scripts的意思是腳本。

buildFragment函數的內部實現

buildFragment函數首先定義了三個變量:fragment、cacheable和cachehit。片段可能緩存,緩存標記。然后定義first args[0],即第一個是第一個參數args[0]。通常,args[0]是html標簽內容。

舉個例子來解釋以下這段代碼:

//context ! context[0] || context; bb false; cc "22";; dd "33";; var aa !bb cc || dd; console.log(aa);

這段代碼的意思相當于:

var bb false;

var cc 11;

var dd 22;

if (!bb cc){

var aa cc;

}else{

var aa dd;

}

瀏覽器測試代碼。

緩存判斷

在buildFragment函數中,根據文檔可知,如果first.length小于512字節(jié),則可以將其緩存。同時,需要檢查瀏覽器是否支持checkClone屬性,并且瀏覽器是否支持html5。如果以上條件都滿足,則cacheable為true,即可以進行緩存操作。

返回對象

在buildFragment函數中,最后返回一個對象,其中包含兩個變量:和,即緩存對象和是否緩存。

現在回到parseHTML函數中的代碼:

parsed ( [ data ], context, scripts ? null : [] );

這時候,parsed就有和兩個屬性。根據情況,可以返回的克隆副本,或者直接返回。

標簽: