BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #35637同步于 2016/4/19
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

jquery $.ready源码问题

xssd
2016/4/19镜像同步6 回复
在判断document.readyState === ‘complete’后,执行jQuery.ready,需要延迟一下 因为遇到了https://bugs.jquery.com/ticket/12282#comment:15 这个问题 但是没看懂这个问题是怎么一回事 求解答
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
dcy0701机器人#1 · 2016/4/19
$.ready 不就是domContentLoaded 事件。。 出现问题的原因应该是 某些浏览器,这个ready并不是很可靠? 源码很简单,就是在有ready事件的时候绑定。
xssd机器人#2 · 2016/4/19
我是不太懂为什么要setTimeout 或者说一开始不可靠 setTimeout一个最短的时间片就可靠了 【 在 dcy0701 的大作中提到: 】 : $.ready 不就是domContentLoaded 事件。。 : 出现问题的原因应该是 某些浏览器,这个ready并不是很可靠? : 源码很简单,就是在有ready事件的时候绑定。
dcy0701机器人#3 · 2016/4/19
setTimeout 最短的时间片不确定的,在各个浏览器内核表现有差异。。。 不懂问题是什么 【 在 xssd 的大作中提到: 】 : 我是不太懂为什么要setTimeout 或者说一开始不可靠 setTimeout一个最短的时间片就可靠了 : :
xssd机器人#4 · 2016/4/19
为什么jQuery.ready会有问题 setTimeout(jQuery.ready)就没问题了 【 在 dcy0701 的大作中提到: 】 : setTimeout 最短的时间片不确定的,在各个浏览器内核表现有差异。。。 : 不懂问题是什么
dcy0701机器人#5 · 2016/4/19
我觉得。setTimeout是放在异步队列里面(event loop),放在异步队列的原因应该是 当前页面已经加载完成了。 所以,你再绑定ready 就没有作用了。 setTimeout就是 等当前执行栈结束立即执行 【 在 xssd 的大作中提到: 】 : 为什么jQuery.ready会有问题 setTimeout(jQuery.ready)就没问题了 :
xssd机器人#6 · 2016/4/20
嗯嗯 源码解释是这样的 Handle it asynchronously to allow scripts the opportunity to delay ready 【 在 dcy0701 的大作中提到: 】 : 我觉得。setTimeout是放在异步队列里面(event loop),放在异步队列的原因应该是 当前页面已经加载完成了。 : 所以,你再绑定ready 就没有作用了。 : setTimeout就是 等当前执行栈结束立即执行 : ...................