为啥我的页面在刷新期间会在 Chrome 中触发“就绪”事件?

Posted

技术标签:

【中文标题】为啥我的页面在刷新期间会在 Chrome 中触发“就绪”事件?【英文标题】:Why does my page fire "ready" event in Chrome during refresh?为什么我的页面在刷新期间会在 Chrome 中触发“就绪”事件? 【发布时间】:2014-09-17 08:22:50 【问题描述】:

我有一个这样的 html

<!-- simulate a slow-loading request -->
<script src="http://example.com:81/non-existent-script.js"></script>

<script>
    $(document).ready(function()  alert("ready"); )
</script>

(见http://jsfiddle.net/mK63F/)

当我在 Chrome 中打开页面时,example.com 请求应该挂起 - 但是,当我按下 F5 时,会出现“就绪”警报,页面刷新之前。为什么会这样?以及如何区分这种情况(即页面加载期间刷新)和“正常”页面就绪?

【问题讨论】:

呃,也许我没有完全理解,但刷新只是重新加载页面——所以它会变成ready,就像“正常”页面加载一样。对吗? 我的意思是ready 发生在页面刷新之前。我将编辑我的问题。 OHHHH,明白了。感谢您的澄清。 相关:***.com/questions/3698200/… 【参考方案1】:

当您单击f5 时,浏览器会停止所有活动的请求并且ready 功能正在破坏因为一切都已加载...

另一种选择是

$( window ).load(function() 
  alert("loaded");
);

http://jsfiddle.net/26x2K/4/


LINK HERE

.load 如果所有请求都没有得到成功响应,则不会运行

Also Read - jquery what are differences between document ready and window load

【讨论】:

【参考方案2】:

当您按 F5 进行重新加载时,请求将被取消。您可以在 devtools 中看到状态为取消:

因此文档已准备就绪,因为不再加载请求。

【讨论】:

以上是关于为啥我的页面在刷新期间会在 Chrome 中触发“就绪”事件?的主要内容,如果未能解决你的问题,请参考以下文章

为啥单击事件处理程序会在页面加载后立即触发?

Chrome 扩展内容脚本在页面刷新之前未加载

为啥 Chrome 会在我的 HTML 顶部添加一个正文,然后给我一个看似虚假的错误消息?

为啥我的触发器在 SSIS 插入期间没有触发?

为啥 twitter 在调整大小时会在 Google Chrome 上启动“打嗝”?

部分刷新触发 XPage 中的 addOnLoad 事件