【问题标题】:Real User Monitoring: Standards for reliability真实用户监控:可靠性标准
【发布时间】:2016-03-08 06:54:21
【问题描述】:

在衡量网页性能时是否有可接受的信标数据丢失标准,以及说明这些损失的标准方法?

许多用户没有支持 Navigator.sendBeacon 的浏览器,甚至该 API 也无法保证无损报告。

似乎最有可能丢失的数据也是最有趣的数据,在某些方面——非常慢的页面、糟糕的互联网连接、不完整的上传等等。我想知道是否有已知的方法考虑到这一点。

【问题讨论】:

    标签: javascript performance monitoring navigator


    【解决方案1】:

    “可接受损失的标准”,这是一个笑话:),如果你参考W3.org 正如他们所说,确保数据正确提交而不会丢失是所有开发人员的问题。 但是您会发现一些技术,希望在“没有受让人”的情况下一切都能正常工作:D。 另请阅读this

    Beacon 规范定义了 Web 开发人员可以使用的接口 用于将小型 HTTP 数据从用户代理异步传输到 一个网络服务器。

    规范解决了分析和诊断的需求 通常尝试在 卸载文件。尽快发送数据可能会导致 错过了收集数据的机会。但是,确保数据有 在卸载文档期间发送的内容 传统上对开发人员来说很困难。

    用户代理通常会忽略在 卸载处理程序。为了解决这个问题,分析和诊断 代码通常会在卸载或 beforeunload 处理程序提交数据。同步的 XMLHttpRequest 强制用户代理延迟卸载文档, 并使下一个导航看起来更慢。没有什么 下一页可以避免这种页面加载不佳的感觉 性能。

    还有其他用于确保提交数据的技术。一 这种技术是延迟卸载以提交数据 创建一个 Image 元素并在 卸载处理程序。由于大多数用户代理会延迟卸载完成 待加载的图像,可以在卸载期间提交数据。 另一种技术是在几秒钟内创建一个无操作循环 卸载处理程序,用于延迟卸载并将数据提交到服务器。

    这些技术不仅代表糟糕的编码模式,其中一些 它们不可靠,还会导致页面质量不佳 下一次导航的加载性能。

    【讨论】:

    • 不,不是开玩笑。我想知道其他人是否发表了他们关于可能丢失多少数据并仍然提取有用信号的发现,尤其是在异常值中。显然这是一个难题,这就是 navigator.sendBeacon 存在的原因,但当然这只是浏览器的一个子集,并不能解决网络等变幻莫测的问题。
    • @MoisheLettvin 你的想法不错,但它仍然是一项实验性技术,我们可能会在不久的将来感到惊讶
    猜你喜欢
    • 2016-05-29
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-23
    • 2017-02-08
    相关资源
    最近更新 更多