在衡量网页性能时是否存在可接受的信标数据丢失标准,以及解决这些损失的标准方法?
许多用户没有支持Navigator.sendBeacon的浏览器,甚至该API也无法保证无损报告。
似乎最有可能丢失的数据也是最有趣的数据,在某些方面 - 非常慢的页面,糟糕的互联网连接,不稳定的上传等等。我想知道是否有已知的方法说明这一点。
答案 0 :(得分:5)
“可接受的损失标准”,这是一个笑话:),如果你引用W3.org 正如他们所说,所有开发人员确保数据正确提交而不会丢失是一个问题。 但你会发现一些技术用于希望一切都能正常工作“没有受助者”:D。 另请阅读this
Beacon规范定义了Web开发人员可以使用的接口 用于将用户代理的小HTTP数据异步传输到 一个网络服务器。
该规范解决了分析和诊断的需求 通常尝试在之前将数据发送到Web服务器的代码 卸载文件。更快地发送数据可能会导致a 错过了收集数据的机会。但是,确保数据有 在卸载文件期间发送的东西是有的 传统上开发人员很难。
用户代理通常会忽略在其中创建的异步XMLHttpRequests 卸载处理程序。解决这个问题,分析和诊断 代码通常会在卸载时生成同步XMLHttpRequest beforeunload处理程序提交数据。同步 XMLHttpRequest强制用户代理延迟卸载文档, 并使下一个导航看起来更慢。空无一物 下一页可以做到避免这种不良页面加载的感觉 性能
还有其他一些技术可以确保提交数据。一 这种技术是延迟卸载以便提交数据 创建一个Image元素并在其中设置其src属性 卸载处理程序。由于大多数用户代理将延迟卸载完成 挂起的图像加载,数据可以在卸载期间提交。 另一种技术是在几秒内创建一个无操作循环 卸载处理程序,用于延迟卸载并将数据提交给服务器。
这些技术不仅代表了糟糕的编码模式,还有一些 它们不可靠,也导致页面不良的感觉 加载下一个导航的性能。