这不是一个真正的编码问题,更像是一个真实世界的陈述。
我之前已经注意到事件DOMReady
很慢,非常慢。因此,我在浏览 jQuery 源代码时注意到,可以使用$.ready()
. 然后我想,在关闭正文之前放置这个简单的执行脚本应该会触发之前附加的所有“onDomReady”侦听器。是的,它按预期工作:
<script>$.ready()</script>
</body>
这里有两个例子,一个测量等待 DOMReady 所花费的毫秒数:
如您所见,DOMReady 触发器本身非常慢,用户必须等待整整 200-300 毫秒才能启动 domready 脚本。
无论如何,如果我们$.ready()
在关闭标签之前放置,BODY
我们会得到:
看到不同?通过手动触发 domready,我们可以切断 100-300 毫秒的执行延迟。这是一个大问题,因为我们可以在看到 DOM 操作之前依靠 jQuery 来处理它们。
现在,对于一个问题,我以前从未见过有人推荐或讨论过这个问题,但它似乎仍然是一个主要的性能问题。一切都是为了优化代码本身,这当然很好,但是如果执行延迟这么长时间,用户看到“unjQueryedContent”的闪光,那是徒劳的。
任何想法为什么不更频繁地讨论/推荐?