随机 jQuery Dom 访问失败——没有想法

Posted

技术标签:

【中文标题】随机 jQuery Dom 访问失败——没有想法【英文标题】:Random jQuery Dom Accesses Are Failing -- Out of Ideas 【发布时间】:2012-06-15 21:39:35 【问题描述】:

随机地,在执行正常的有效查询时,我们会看到一些奇怪的现象。

我已经在 jQuery1.6.4 中跟踪了它的一些行(也尝试了 1.7.2,结果相同)。第 4737 行(makeArray)。

我已链接到两个图像,第一个是预期情况,第二个是错误情况,突出显示可变结果。

预期的情况是一个简单的 jquery 对象,而第二种情况不是。它看起来像 dom 文档元素?不是 100% 确定。

任何帮助将不胜感激!我完全不知道我们可以做些什么来导致 jQuery 中的这个错误:(这个问题是间歇性的,只发生在大约 50% 的时间。

它似乎不是页面上的任何特定元素。所有与 jQuery 交互的元素都可以触发这个。

注意:这只发生在 Chrome 18+ 中。在旧版本的 Chrome 或 FF/Safari 中不会发生。

预期: http://i.imgur.com/efi0w.png

错误: http://i.imgur.com/F0cq7.png

用更多信息更新我的帖子。下面是具有有效结果和非常奇怪结果的图像。如您所见,它不是 jquery 对象,而只是带有选择器的“对象”,该选择器是 FUNCTION 调用以及选择器字符串....

http://i.imgur.com/TdCUe.png

【问题讨论】:

您是否有一个代码示例可以一致地重现此内容? 澄清一下:看起来 jquery/sizzle 有时会丢失文档对象的句柄。一旦发生这种情况,所有未来的 jquery/sizzle 操作都会失败。 (我在办公室用 bobber205 工作。)页面很大,我们一直在尝试在页面外创建可重现的演示,但没有成功。 您提供给我们的信息可能不足以让我们知道发生了什么。你能给我们指出一个实际的网页和一段实际存在这个问题的 jQuery 代码吗?或者,更好的是,你能在一个小的 jsFiddle 中用相关的 html、CSS 和 javascript 重现问题吗? 我已经尝试了几天在 jsfiddle 中提出一个测试用例,但无济于事。我知道它会被要求,并且在发布之前我付出了巨大的努力想出一个。 页面上是否有其他插件或其他 javascript 库正在使用?其中一个可能存在一些冲突或错误。它可以解释为什么您无法在 jsfiddle 中重现它。 【参考方案1】:

这可能是获取图像时的传输级错误,.load() 对该元素失败。 img 元素确实有一个 load 事件,您可以使用它并进一步检查。

另外,

Web 服务器的硬件配置决定了 可以在 HTTP 响应中成功发送的最大文件大小。

【讨论】:

以上是关于随机 jQuery Dom 访问失败——没有想法的主要内容,如果未能解决你的问题,请参考以下文章

JQuery中的DOM操作

如何清除 jQuery DOM 缓存?

如何使用jquery从DOM中删除随机生成的属性?

jQuery——jQuery鼠标事件

jquery resize监听dom

JQuery for mobile safari:on()失败