1

尽管从 $.Ready() 中删除了我的所有代码,但它似乎jquery.validate.unobtrusive.js调用了一些加载代码,这导致我们的 DOMContentLoaded 事件需要 300 毫秒的前置时间才能触发。

我们确实有一个相当大的 DOM,但肯定不会花那么长时间吗?

4

1 回答 1

2

在解决我正在开发的产品上的一些性能问题时,我的 DOMContentLoaded 事件似乎在 IE 9 中花费了 700 毫秒(我们有一个非常大的 DOM - 这也在我的列表中)

禁用我所有的 OnReady 代码后 - 我缩小了范围

parse(selector)jquery.validate.unobtrusive.js

找到后:

$(selector).find(":input[data-val=true]").each(function () {...}我立即知道 Find() 方法中选择器的结构,这将进入嘶嘶声引擎,而不是使用Document.QuerySelectorAll().

--根据@CharlesC 的评论进行编辑--

选择器的微小更改为:

$(selector).find("input, select, textarea").filter("[data-val=true]")在 IE 中导致 300 毫秒的性能提升。

于 2012-08-07T17:25:36.497 回答