Navigator.sendBeacon()

简介: Navigator.sendBeacon()

合集 - WEB API(1)

1.Navigator.sendBeacon()04-19

收起

navigator.sendBeacon() 方法可用于通过 HTTP POST 将少量数据异步传输到 Web 服务器。

这个方法主要用于满足统计和诊断代码的需要,这些代码通常尝试在卸载(unload)文档之前向 Web 服务器发送数据。过早的发送数据可能导致错过收集数据的机会。然而,对于开发者来说保证在文档卸载期间发送。

它主要用于将统计数据发送到 Web 服务器,同时避免了用传统技术(如:XMLHttpRequest)发送分析数据的一些问题。

语法

navigator.sendBeacon(url);
navigator.sendBeacon(url, data);

参数

返回值

当用户代理成功把数据加入传输队列时,sendBeacon() 方法将会返回 true,否则返回 false

特点

  • 数据发送是可靠的
  • 数据传输是异步的
  • 不影响下一次导航的载入

示例

示例代码使用 visibilitychange 事件来调用 sendBeacon() 以发送统计数据。

document.addEventListener('visibilitychange', function logData() {
  if (document.visibilityState === 'hidden') {
    navigator.sendBeacon('/log', analyticsData);
  }
});

浏览器兼容性


相关文章
|
Web App开发 安全
navigator.mediaDevices是undefined怎么办
navigator.mediaDevices是undefined怎么办
1624 1
|
3月前
|
存储 缓存 监控
|
3月前
|
JavaScript 前端开发
JavaScript Window Navigator
JavaScript Window Navigator
38 2
|
8月前
|
API
解决http下navigator.clipboard为undefined问题
总之,要解决 `navigator.clipboard`为 `undefined`的问题,你需要确保遵循浏览器的安全策略,使用HTTPS,获得用户授权,并在受信任的上下文中使用clipboard API。此外,还要确保你的代码在支持该API的浏览器上运行。如果问题仍然存在,可能需要进一步调查特定浏览器和环境的问题。
1453 3
|
8月前
|
存储 JavaScript 前端开发
vue使用navigator.mediaDevices.getUserMedia调用相机功能
vue使用navigator.mediaDevices.getUserMedia调用相机功能
1546 0
|
数据采集 Web App开发 JavaScript
在Pyppeteer中正确隐藏window.navigator.webdriver
在Pyppeteer中正确隐藏window.navigator.webdriver
300 0
|
JavaScript 前端开发
|
Web App开发 存储 前端开发
WEB 剪切板操作navigator.clipboard的使用
浏览器允许 JavaScript 脚本读写剪贴板,自动复制或粘贴内容,而这一切都是通过 navigator clipboard 的API来实现的。剪贴板可以用于存储数据并在应用程序内部或应用程序之间使用的临时空间。这些操作的 API 都是异步操作并返回一个 promise。
2547 0
|
Web App开发 iOS开发
navigator 应用
navigator对象包含有关浏览器的信息,通常用于检测浏览器和操作系统版本 navigator的对象属性包括: appCodeName:浏览器代码名的字符串表示; appName:返回浏览器的名称; appVersion:返回浏览器的操作系统平台; ...
1115 0
|
Java Android开发 Python