javascript - 如果选项卡关闭,“fetch”调用会继续吗?
问题描述
浏览器现在提供Fetch API,您可以像这样从 JavaScript 发出网络请求:
const response = await fetch('http://example.com/movies.json');
const myJson = await response.json();
如果用户关闭调用fetch
和履行承诺之间的选项卡会发生什么?浏览器会丢弃请求吗?如果调用fetch
发生在unload
orbeforeunload
事件中怎么办?
我知道sendBeacon
是用于此目的的 API 调用,但我想知道sendBeacon
现在我们是否已经过时了fetch
.
解决方案
如果在触发它的 JS 环境消失时 HTTP 请求已经发送,那么它已经发送。
如果它在此之前消失,则不会发送请求。
如果在环境消失之前 load 事件没有触发,则永远不会调用事件处理程序。它不再存在了。
如果 fetch 调用发生在 unload 或 beforeunload 事件中怎么办?
然后,很可能 JS 环境会在请求发送之前消失。
我知道 sendBeacon 是用于此目的的 API 调用
是的
但我想知道现在我们已经获取了 sendBeacon 是否已经过时。
不
推荐阅读
- uml - 如何将任何 UML/XMI 文件导入 StarUML?
- snowflake-cloud-data-platform - 关于选择云提供商的问题
- python - Selenium 和 BeautifulSoup - 尝试从第 1 页抓取内容然后转到第 2 页,依此类推
- c# - 通过 SQLXMLBULKLOADLib 插入时防止重复
- python - 如何在Python中不四舍五入的情况下精确显示小数点后的4个数字?
- javascript - 一页上的三个 Javascript 手风琴两个工作
- com - 从 JScript(或任何 ActiveScripting)访问 Windows 联系人(Win10 之前)
- c++ - 使用 AVX 的水平最大或最小浮点数?
- arrays - 用于根据多个条件选择/复制数据的 VBA 代码
- python-3.x - 如何将 Perl 修改后的内容写入 Python 脚本中的文件?