为什么是文档.Onreadystatechange函数提前执行?


console.time('onload')
console.time('onreadystatechange')
window.onload = ()=>{console.log('onload'); console.timeEnd('onload')}
document.onreadystatechange = ()=>{console.log('onreadystatechange');console.log(document.readyState);console.timeEnd('onreadystatechange')}

我在内联脚本中编写了上述代码,为什么结果如下?

理论上应该先执行console.time('onreadystatechange'),但从结果来看,onreadystatechange事件先执行,document.readyState事件"完成",为什么事件提前?

document.readyState完成之前还会有其他的状态变化。

此时,onreadystatechange功能将被触发。

console.timeEnd('onreadystatechange')onreadystatechange中使用。

console.timeEnd被调用时,该记录对应的定时器将被清除。

因此,当后续的onreadystatechange函数再次被调用时,将会有一个提示,因为没有重新启动设置onreadystatechange定时器。

整个执行顺序与标准定义一致,没有问题。

最新更新