`
JavaSam
  • 浏览: 938286 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery源码学习(三)-- 缓冲区(buildFragment)

阅读更多
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-source-code:jQuery源码学习

    jQuery源代码 本文主要以为学习参考书籍,为保证与书籍内容同步,以jQuery 1.7.2为学习版本进行。 本次学习主要使用“笨鸟多飞”的方式对相关例程代码进行逐行注释理解。... jQuery.buildFragment()方法 jQuery.c

    jQuery.buildFragment使用方法及思路分析

    一、jQuery.buildFragment使用方法 1、参数 jQuery.buildFragment( args, context, scripts );2、返回值 return { fragment: fragment, cacheable: cacheable }; 二、思路分析 1、处理context参数 根据传入到context...

    jQuery3.0中的buildFragment私有函数详解

    在 jQuery3.0中,buildFragment 是一个私有函数,用来构建一个包含子节点 fragment 对象。下文给大家介绍jQuery3.0中的buildFragment私有函数详解,对jquery3.0 buildfragment相关知识感兴趣的朋友一起学习吧

    onnxruntime-1.6.0-cp38-cp38-linux_armv7l.whl.zip

    python模块onnxruntime版本

    Java毕业设计-ssm信管专业毕业生就业管理信息系统演示录像(高分期末大作业).zip

    此资源为完整项目部署后演示效果视频,可参考后再做项目课设决定。 包含:项目源码、数据库脚本、项目说明等,有论文参考,该项目可以直接作为毕设使用。 技术实现: ​后台框架:SpringBoot框架 或 SSM框架 ​数据库:MySQL 开发环境:JDK、IDEA、Tomcat 项目都经过严格调试,确保可以运行! 博主可有偿提供毕设相关的技术支持 如果您的开发基础不错,可以在此代码基础之上做改动以实现更多功能。 其他框架项目设计成品不多,请根据情况选择,致力于计算机专业毕设项目研究开发。

    Java毕业设计-ssm校园线上点餐系统演示录像(高分期末大作业).rar

    Java毕业设计-ssm校园线上点餐系统演示录像(高分期末大作业)

    【案例】某企业人力资源盘点知识.docx

    【案例】某企业人力资源盘点知识.docx

    基于springboot的智能物流管理系统带源码.rar

    本智能物流管理系统有管理员,顾客,员工,店主。功能有个人中心,顾客管理,员工管理,店主管理,门店信息管理,门店员工管理,部门分类管理,订单信息管理,工作日志管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得智能物流管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高智能物流管理系统管理效率。 关键词:智能物流管理系统;SSM框架;MYSQL数据库;Spring Boot 管理员模块的实现: 顾客信息管理:智能物流管理系统的系统管理员可以管理顾客信息,可以对顾客信息信息添加修改删除以及查询操作 员工信息管理:系统管理员可以查看对员工信息信息进行添加,修改,删除以及查询操作。 店主模块的实现: 员工信息管理:店主可以对员工信息信息进行修改,删除以及查询操作 门店信息管理:店主可以对门店信息信息进行修改操作,还可以对门店信息信息进行查询。 员工模块的实现: 门店信息管理:员工登录可以查看门店信息 订单信息管理

    岗位体系建设.pdf

    岗位体系建设.pdf

    Java毕业设计-springboot志愿服务小程序演示录像(高分期末大作业).zip

    此资源为完整项目部署后演示效果视频,可参考后再做项目课设决定。 包含:项目源码、数据库脚本、项目说明等,有论文参考,该项目可以直接作为毕设使用。 技术实现: ​后台框架:SpringBoot框架 或 SSM框架 ​数据库:MySQL 开发环境:JDK、IDEA、Tomcat 项目都经过严格调试,确保可以运行! 博主可有偿提供毕设相关的技术支持 如果您的开发基础不错,可以在此代码基础之上做改动以实现更多功能。 其他框架项目设计成品不多,请根据情况选择,致力于计算机专业毕设项目研究开发。

    onnxruntime-1.14.0-cp37-cp37m-linux_armv7l.whl.zip

    python模块onnxruntime版本

    2013~2023中国企业全球化发展数据图表.pdf

    2013~2023中国企业全球化发展数据图表

    绝对素数.exe

    绝对素数

    Java毕业设计-ssm抑抑心理交流平台演示录像(高分期末大作业).rar

    Java毕业设计-ssm抑抑心理交流平台演示录像(高分期末大作业)

    onnxruntime-1.12.1-cp37-cp37m-linux_armv7l.whl.zip

    python模块onnxruntime版本

    B2031 计算三角形面积.exe

    B2031 计算三角形面积

    glm-4-9b-chat-1m模型代码文件

    glm-4-9b-chat-1m模型代码文件

    基于springboot的车辆管理系统设计与实现带源码.zip

    本车辆管理系统管理员功能有管理员和员工。 管理员功能有个人中心,员工管理,证件信息管理,车辆信息管理,业务单据管理,事故登记管理,维修登记管理,保养登记管理,加油登记管理,违章信息管理。 员工功能有个人中心,证件信息管理,车辆信息管理,业务单据管理,事故登记管理,维修登记管理,保养登记管理,加油登记管理,违章信息管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得车辆管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高车辆管理系统管理效率。 关键词:车辆管理系统 本车辆管理系统管理员功能有管理员和员工。 管理员功能有个人中心,员工管理,证件信息管理,车辆信息管理,业务单据管理,事故登记管理,维修登记管理,保养登记管理,加油登记管理,违章信息管理。 员工功能有个人中心,证件信息管理,车辆信息管理,业务单据管理,事故登记管理,维修登记管理,保养登记管理,加油登记管理,违章信息管理。因而具有一定的实用性。

    onnxruntime-1.16.0-cp39-cp39-linux_armv7l.whl.zip

    onnxruntime-1.16.0-cp39-cp39-linux_armv7l.whl.zip

    tensorflow-2.8.3-cp310-cp310-win-amd64.whl

    tensorflow安装

Global site tag (gtag.js) - Google Analytics