`
JavaSam
  • 浏览: 954867 次
  • 性别: 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的使用方法、思路分析以及源码层面的注释分析。 一、使用方法 jQuery.buildFragment接受三个参数:args, context, scripts。其中args是一个数组,包含了需要被创建成DOM元素的...

    jquery1.43源码分析(核心部分)

    ### jQuery 1.4.3 源码分析(核心部分) #### 一、引言 随着 Web 技术的不断发展,JavaScript 成为了前端开发中不可或缺的一部分。而在众多 JavaScript 库中,jQuery 几乎成为了网页开发的标准工具之一。本文将...

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

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

    046SOCPR-and-Linear-Disrflow-based-DNP-main matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    该脚本可以直接从 Nanoscope 6 软件存储的文件中读取 AFM 图像数据MATLAB代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    红外小弱目标检测中的周期移位视觉图卷积网络CS-ViG-UNet模型及其应用

    内容概要:本文介绍了一种基于周期移位图卷积(CS-ViG)的新型框架——CS-ViG-UNet用于红外小弱目标检测的方法,它采用了图像块为节点构建的视觉图神经网络来增强对小弱目标识别的能力。研究提出了周期移位稀疏图注意力机制,以及结合了CNN与U形架构的CS-ViG模块,实现了对小弱目标的有效捕获,并在公共数据集Sirst-Aug和IRSTD-1K上达到了先进的性能。在硬件条件如RTX3090加速下,模型能够高效地进行大批量的实时检测任务。 适合人群:从事计算机视觉、特别是小目标检测领域的科研人员和技术开发者。 使用场景及目标:应用于复杂背景下,需要快速精确定位并分离出小弱目标的任务场合。适用于军事、航空航天等高端应用场景,以及民用安防监控设备等需要可靠小目标检测能力的需求。 其他说明:文中提供的链接可以访问更多的项目资料和技术支持页面。此外,在实际测试环境下展示了该方法与其他现有算法相比较的优越性和创新点。同时指出了当前仍存在的限制,比如多物体场景下的误检率以及高亮背景干扰等问题,并给出了改进方向。

    两个微信体育课程预订小程序-Fitnessw_xApp.zip

    两个微信体育课程预订小程序-Fitnessw_xApp

    风储调频,储能调频,保证真实,模型如图,保证正常使用

    风储调频,储能调频,保证真实,模型如图,保证正常使用

    054可用于光伏出力预测,引入气象影响因子,效果良好 matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    Stentiford 细化算法Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    并离网逆变器仿真模型 逆变器PQ控制,Vf控制,无功能量发生器SVG,有源电力滤波器APF仿真模型

    并离网逆变器仿真模型 逆变器PQ控制,Vf控制,无功能量发生器SVG,有源电力滤波器APF仿真模型

    一种磁盘分区恢复软件,可以从损坏的磁盘映像hand_disk中恢复可能的分区表.zip

    一种磁盘分区恢复软件,可以从损坏的磁盘映像hand_disk中恢复可能的分区表

    计算光波导的电磁模式matlab代码.rar

    计算光波导的电磁模式matlab代码.rar

    了解 MATLAB 图像处理的基础知识MATLAB代码.rar

    了解 MATLAB 图像处理的基础知识MATLAB代码.rar

    基于labview的生产者消费者循环源码.zip

    labview源码参考示例,可供参考学习使用

    strel3d 将球体创建为 3D 结构元素,这对于 3D 数据集非常重要Matlab代码.rar

    1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

    基于labview的写入数据至用户指定的单元格源码.zip

    labview源码参考示例,可供参考学习使用

    红外小目标检测中的深度学习方法:HCF-Net层次化上下文融合网络模型及其应用

    内容概要:本文提出了一种新的深度学习架构——HCF-Net(Hierarchical Context Fusion Network),旨在提升红外图像中小目标物体的检测精度和鲁棒性。HCF-Net采用了多尺度特征提取、平行补丁注意力模块(PPA)、维度感知选择性集成模块(DASI)以及多扩张通道细化器(MDCR),有效解决了由于红外图像低对比度及背景复杂所导致的小目标检测困难的问题。该研究对SIRST数据集进行了广泛实验评估,表明HCF-Net性能优于现有主流传统和深网方法。HCF-Net通过优化下采样过程中的特征表示与细节捕捉,大幅提高了对微小目标位置识别及形状边界描写的准确性。此外,研究团队还在论文中探讨了相关领域的最新进展和其他基于卷积神经网络的技术。 适合人群:对于计算机视觉尤其是遥感成像与自动目标识别有浓厚兴趣的研究人员和技术爱好者。同时适用于从事国家安全、军事侦察、灾害监测等领域工作的专业人士。 使用场景及目标:应用于各种需要精确探测小型目标物的应用场合,比如海上搜索救援行动、消防监控、边境安防巡逻、天文观测系统等。其目的是提高这些应用场景中设备的工作效率和服务质量。 其他说明:文中还介绍了大量关于红外线成像特性的基础知识,并详细阐述了几种传统的滤波器和机器学习算法用于解决这一任务时面临的局限性;强调了深度学习相对于传统方法所具有的明显优势。

    STM32驱动lcd1602显示adc采集电压显示程序源码 主控芯片采用stm32f103,包括程序源码和protues仿真protues版本8.8. 需要做AD转的不要错过 程序源码注释详细,非

    STM32驱动lcd1602显示adc采集电压显示程序源码。 主控芯片采用stm32f103,包括程序源码和protues仿真protues版本8.8. 需要做AD转的不要错过。 程序源码注释详细,非常适合单片机开发的人员。

Global site tag (gtag.js) - Google Analytics