gpt4 book ai didi

jquery - 什么是 jQuery18007779947370290756

转载 作者:行者123 更新时间:2023-12-03 22:21:24 24 4
gpt4 key购买 nike

我在我的页面中使用jQuery,当我使用Chrome开发工具时,我在控制台中找到了jQuery18007779947370290756和jQuery对象。 jQuery18007779947370290756 仅包含几个方法。 jQuery 包含更多方法。那么什么是 jQuery18007779947370290756 ?我没有该页面的网址,因为它是内部页面。我包含的库只是 jquery-1.8.0.min.js 和 jquery-ui-1.8.23 和没有 JSONP 调用。

看起来好像我向窗口对象添加了一个全局事件'beforeunload'。它存储在 window[expando] 中。但是,如果我将一些事件添加到其他 DOM 对象(例如 button),并且它们存储在 jQuery.cache 中。这是 jQuery.cache 和 window[jQuery1800xxxxxxxxxxxxxxx] 的屏幕截图我不确定为什么这 2 个单击事件的 guid 都是 8。这 2 个单击事件绑定(bind)到 2 个按钮。和点击事件处理程序是相同的功能。

enter image description here

最佳答案

当您在元素上存储数据时,jQuery 会将此属性添加到元素中。由于此属性位于 window 元素上,因此您在代码中的某个位置所做的操作相当于:

$(window).data('something', 1);

请注意,jQuery 事件还在后台使用 data 模块,因此这也可能是因为您将事件添加到 window 对象。

对于普通节点(即具有 nodeType 属性的元素),该值为 set to a GUID (data.js#61),并且您想要存储在该对象上的数据存储在全局 jQuery 缓存中。

但是 window 元素没有 nodeType 属性,因此它沿着 我是一个普通 JS 对象 的路线;这导致数据直接存储在对象本身上(在 window 的情况下,可能是 jQuery 的一个错误)。

缓存位置(全局或对象上)的选择在 L39-45 in data.js 中进行。 :

// We have to handle DOM nodes and JS objects differently because IE6-7
// can't GC object references properly across the DOM-JS boundary
isNode = elem.nodeType,

// Only DOM nodes need the global jQuery cache; JS object data is
// attached directly to the object so GC can occur automatically
cache = isNode ? jQuery.cache : elem,

对于普通 DOM 元素,该值会在 data.js#61 中分配一个 GUID :

elem[ internalKey ] = id = jQuery.deletedIds.pop() || jQuery.guid++;

但是对于普通的 JS 对象(以及本例中的 window),该对象是在 68 - 74 中构建的。 :

cache[id] = {};

// Avoids exposing jQuery metadata on plain JS objects when the object
// is serialized using JSON.stringify
if (!isNode) {
cache[id].toJSON = jQuery.noop;
}​

奇怪的值是jQuery.expando,它在 data.js#14 中定义。 ,并初始化为:

"jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" )

(基本上是“jQuery”,后跟删除了“.”的 jQuery 版本(在您的情况下为 1800),然后是一个随机数)。

关于jquery - 什么是 jQuery18007779947370290756,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13769463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com