相关疑难解决方法(0)

收盘前$ .ready()

这不是一个真正的编码问题,而是一个现实世界的陈述.

前面我已经提到DOMReady事件是慢,很慢.所以,我注意到在浏览jQuery源代码时可以触发jQuery domeready事件$.ready().然后我想,在关闭正文之前放置这个简单的执行脚本应该触发所有先前附加的"onDomReady"监听器.是的,它按预期工作:

     <script>$.ready()</script>
</body>
Run Code Online (Sandbox Code Playgroud)

这里有两个例子,这个例子测量等待DOMReady时花费的ms:

http://jsbin.com/aqifon/10

正如您所看到的,DOMReady触发器本身非常慢,用户必须在domready脚本启动之前等待整整200-300毫秒.

无论如何,如果我们$.ready()在关闭BODY标签之前放置,我们得到这个:

http://jsbin.com/aqifon/16

看到不同?通过手动触发domready,我们可以切断100-300 ms的执行延迟.这是一个重要的交易,因为在我们看到它们之前,我们可以依赖jQuery来处理DOM操作.

现在,对于一个问题,我从未见过这个被推荐或讨论过,但它似乎仍然是一个主要的性能问题.一切都是关于优化代码本身的,这当然是好的,但是如果执行被延迟了很长时间以至于用户看到"flash of"unjQueryedContent",则是徒劳的."

有没有想过为什么不经常讨论/推荐这个?

javascript performance jquery delay domready

10
推荐指数
1
解决办法
318
查看次数

在jQuery中强制触发domready?

由于将javascript DOM方法放在html页面的底部(在<body>之后)比使用jQuery"ready"事件要快得多,所以我们不应该通过这样做来强制它:

$('document').trigger('ready');
Run Code Online (Sandbox Code Playgroud)

...身体标签后?我还没有尝试过这个,但它应该加快速度.还是我错过了什么?

javascript jquery events domready

3
推荐指数
1
解决办法
4550
查看次数

标签 统计

domready ×2

javascript ×2

jquery ×2

delay ×1

events ×1

performance ×1