尽管从$ .Ready()中删除了我所有的代码,但看起来jquery.validate.unobtrusive.js
正在调用一些加载代码时导致我们的DOMContentLoaded事件的300ms前置时间开火。Unobtrusive JS(MVC3)导致延迟的DOMContentLoaded事件
我们确实有一个非常大的DOM,但肯定不会花那么长时间?
尽管从$ .Ready()中删除了我所有的代码,但看起来jquery.validate.unobtrusive.js
正在调用一些加载代码时导致我们的DOMContentLoaded事件的300ms前置时间开火。Unobtrusive JS(MVC3)导致延迟的DOMContentLoaded事件
我们确实有一个非常大的DOM,但肯定不会花那么长时间?
虽然在产品我的工作解决了一些性能龙,似乎我的DOMContentLoaded事件在IE 9以700毫秒(我们有一个相当大的DOM - 这也是我的名单,以解决上)
禁用我的所有OnReady代码后 - 我把范围缩小
parse(selector)
在jquery.validate.unobtrusive.js
发现后:
$(selector).find(":input[data-val=true]").each(function() {...}
我知道立即出现y Find()方法中选择器的结构,这将进入sizzle引擎,并且不使用Document.QuerySelectorAll()
。
- 编辑按评论从@ CharlesC--
选择器的微小变化:
$(selector).find("input, select, textarea").filter("[data-val=true]")
导致内IE一个300ms的性能增益。
find(“input”)和find(“:input”)之间有显着差异。输入虚拟选择器。没有:你会错过选择和textareas。 – CharlesC 2015-02-26 15:24:23
好点@CharlesC!我相应地更新了我的答案。 – 2015-02-26 16:04:13