2016 - 2024

感恩一路有你

jQuery函数parseHTML中的parsed分析

浏览量:1760 时间:2024-02-03 20:44:33 作者:采采

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的意思是上下文环境;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字节,则可以将其缓存。同时,需要检查浏览器是否支持checkClone属性,并且浏览器是否支持html5。如果以上条件都满足,则cacheable为true,即可以进行缓存操作。

返回对象

在buildFragment函数中,最后返回一个对象,其中包含两个变量:和,即缓存对象和是否缓存。

现在回到parseHTML函数中的代码:

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

这时候,parsed就有和两个属性。根据情况,可以返回的克隆副本,或者直接返回。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。