单击链接后,javascript何时停止在页面上运行?

2024-04-08

我有一个运行各种 javascript 代码的页面,包括调用setTimeout()。如果用户单击链接导航到另一个页面,该页面上的 javascript 在什么时候停止运行,因此我的 setTimeout 调用的代码将不再被调用?例如

  • 单击链接后(我知道这是错误的)
  • 当浏览器开始接收新页面时
  • 还有其他一点吗?

对于不同的主要浏览器来说,这是否有所不同?

背景

我想知道这一点主要是出于兴趣,而不是为了解决任何特定问题。促使我思考这个问题的问题是,当用户单击页面上的特定链接时,我想做一些事情。我想执行 ajax 调用并处理结果,但我不太关心它是否在页面卸载之前完成。因此,我将在链接单击时触发 setTimeout() ,然后如果我幸运的话它会完成,但如果我不幸运它就不会完成。我想知道在什么情况下它会起作用。虽然该问题可能有其他解决方案,但我不想要该问题的解决方案,我只想知道问题的答案。


以下是发生的顺序:

第 1 步:单击链接。这里浏览器向服务器发送请求并等待响应。当前页面的文档对象仍然存在。

步骤2:浏览器接收响应。当前页面的文档对象仍然存在。

第 3 步:浏览器解析、创建响应并将其呈现给新的文档对象。

第 3 步是当前页面的 JS 将停止的时间,除非您已将响应定位到 iframe。如果这样做,那么新的文档对象将在 iframe 内呈现,并且当前页面的文档对象保持不变,并且 JS 仍将保持功能。

希望这能回答你的问题!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单击链接后,javascript何时停止在页面上运行? 的相关文章

随机推荐