var buildFragment = function(args, nodes, scripts){
var fragment, cacheable, cacheresults, doc, first = args[0];
/**
* 继续使用原来的doc
*/
if (nodes && nodes[0]) {
doc = nodes[0].ownerDocument || nodes[0];
}
// Ensure that an attr object doesn't incorrectly stand in as a document
// object
// Chrome and Firefox seem to allow this to occur and will throw
// exception
// Fixes #8950
/**
* documentFragment 是一个无父窗口的document对象,相当于缓冲区
*/
if (!doc.createDocumentFragment) {
doc = document;
}
// Only cache "small" (1/2 KB) HTML strings that are associated with the
// main document
// Cloning options loses the selected state, so don't cache them
// IE 6 doesn't like it when you put <object> or <embed> elements in a
// fragment
// Also, WebKit does not clone 'checked' attributes on cloneNode, so
// don't cache
// Lastly, IE6,7,8 will not correctly reuse cached fragments that were
// created from unknown elems #10501
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))) {
cacheable = true;//支持缓存
cacheresults = jQuery.fragments[first];//将first缓存起来
if (cacheresults && cacheresults !== 1) {
fragment = cacheresults;
}
}
/**
* 缓存不存在
*/
if (!fragment) {
fragment = doc.createDocumentFragment();//创建文档缓存
jQuery.clean(args, doc, fragment, scripts);
}
/**
* 如果支持缓存
*/
if (cacheable) {
jQuery.fragments[first] = cacheresults ? fragment : 1;
}
/**
* 返回缓存信息
*/
return {
fragment: fragment,
cacheable: cacheable
};
};
待写
分享到:
相关推荐
jQuery源代码 本文主要以为学习参考书籍,为保证与书籍内容同步,以jQuery 1.7.2为学习版本进行。 本次学习主要使用“笨鸟多飞”的方式对相关例程代码进行逐行注释理解。... jQuery.buildFragment()方法 jQuery.c
本文将详细介绍jQuery.buildFragment的使用方法、思路分析以及源码层面的注释分析。 一、使用方法 jQuery.buildFragment接受三个参数:args, context, scripts。其中args是一个数组,包含了需要被创建成DOM元素的...
### jQuery 1.4.3 源码分析(核心部分) #### 一、引言 随着 Web 技术的不断发展,JavaScript 成为了前端开发中不可或缺的一部分。而在众多 JavaScript 库中,jQuery 几乎成为了网页开发的标准工具之一。本文将...
在 jQuery3.0中,buildFragment 是一个私有函数,用来构建一个包含子节点 fragment 对象。下文给大家介绍jQuery3.0中的buildFragment私有函数详解,对jquery3.0 buildfragment相关知识感兴趣的朋友一起学习吧
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于java的驾校收支管理可视化平台的开题报告
时间序列 原木 间隔5秒钟 20241120
毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip
基于springboot课件通中小学教学课件共享平台源码数据库文档.zip
基于java的网上购物商城的开题报告
Delphi人脸检测与识别Demo1fdef-main.zip
基于java的咖啡在线销售系统的开题报告
基于java的自助医疗服务系统的开题报告.docx
内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。
基于java的疫情期间高校防控系统开题报告.docx
基于springboot+vue社区老年人帮扶系统源码数据库文档.zip
基于java的超市商品管理系统的开题报告.docx
基于SpringBoot房屋买卖平台源码数据库文档.zip
xdu限通院23微处理器系统与应用大作业(两只老虎),适应于汇编语言keil软件,
<项目介绍> - 新闻类网站系统,基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发,高分成品毕业设计,附带往届论文 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------