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