jquery - Firefox 中 jquery find 的严重性能问题

标签 jquery performance firefox

这是一段简单的 jQuery 代码:

alert($(document).find("*").length);
alert($(document).find("v\\:group").length);
alert($(document).find("v\\:group").find("*").length);

在非 Firefox 浏览器中,所有 3 个步骤都会立即返回;在 firefox 3.6 中,第三步似乎要花很长时间(我让它以 100% CPU 运行一分钟多,但它没有完成)。我使用的是最新的 jQuery (1.5.1),但在 1.4.2 中得到了相同的结果。

返回的计数为 10000、50 和 2000,因此您可以看到,虽然文档的大小并不小,但它不应该大到足以出现这样的重大性能问题。

作为对之前帖子的回应,我想多澄清一下:该文档是包含一些嵌入式 VML(特定于 IE)的 HTML。我知道 jquery 不能正确支持命名空间,但我发现这是在 jQuery 中搜索 HTML 命名空间之外的节点的最佳方法。

令我困惑的是,尽管我知道 find("") 的性能并不好,但我不明白当文档查找 2000 个节点时如何花费如此大量的时间.find() 瞬间找到10000个节点

最佳答案

看起来 Firefox 遍历 dom 并返回节点的例程性能不是很好。看起来这不可能是 jQueries 的错误,因为其他浏览器似乎可以更好地处理它。

关于jquery - Firefox 中 jquery find 的严重性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5115341/

相关文章:

javascript - 事件对象总是有 relatedTarget undefined

javascript - 如何解决未捕获的类型错误: Illegal invocation jquery ajax

php - jquery 到 php 代码,然后到数据库

sql - 如果根据 EXPLAIN QUERY PLAN 它应该是相反的,为什么一个 SQL 查询比另一个慢?

jquery - 在整个网站上弹出 Div? (在第一个页面加载时)

javascript - 如果重复多次,JavaScript 是否缓存/优化代码?

c# - 如何读取日志文件的最后 "n"行

javascript - 隐藏滚动条在 Mozilla Firefox 中不起作用

html - 如何找出浏览器实际使用的图标

firefox - 在 Imacro 中打开 select2