如何判断是啥启动了页面刷新?
Posted
技术标签:
【中文标题】如何判断是啥启动了页面刷新?【英文标题】:How can I tell what initiated a page refresh?如何判断是什么启动了页面刷新? 【发布时间】:2021-10-22 02:57:20 【问题描述】:我有一个使用 websocket (io
) 与后端通信的 web 应用程序。 (它使用 Underscore 和 JQuery,但没有什么比 React 更高级的了。)在 Safari 中,页面每隔几分钟刷新一次。
我怎么知道是什么导致了这种情况发生?在 Developer Tools Network 选项卡中,我看到了一个 xhr 和其他请求,但我如何查看是哪一行 javascript 发起了该请求?
在调试器中停止beforeunload
事件不会在调用堆栈中显示任何内容。
【问题讨论】:
您在标签页中找到initiator
列了吗?
window.addEventListener("beforeunload", function() debugger; , false)
不是真正的骗子,但答案(除了接受的答案)可能会有所帮助:How to use Chrome's network debugger with redirects
更好的欺骗候选人:Debug webpage redirects in browser
@ikvjs 我在哪里可以看到这个标签?请注意屏幕截图——我在那里看不到它
【参考方案1】:
“网络”选项卡中有 initiator
列。您可以看到启动网络的原因。
注意:Chrome 版本 92.0.4515.159(官方版本)(64 位)
【讨论】:
谢谢。在 Safari 中,我必须启用该列——现在我拥有它。 Initiator 列显示 socket.io 正在重新加载。特定的文件名 + 行号显然不正确(同时查看最小化文件和原始文件)但现在我假设 - 没有太多证据 - 这个问题是 Safari 特有的,并且 Safari 有一些限制阻止 websockets以正常方式工作,以便在超时后回退到整个页面加载。以上是关于如何判断是啥启动了页面刷新?的主要内容,如果未能解决你的问题,请参考以下文章