用于“并行跟踪”的浏览器/ javascript API是什么?

问题描述 投票:0回答:1

几年前,“平行跟踪”的概念开始出现。我记得阅读过有关它及其工作原理的信息-该想法不是通过链接到跟踪网站来跟踪点击,而是将跟踪网站重新定向到目标,浏览器将同时加载目标和跟踪URL(显然仅显示目标页面)-提高页面加载性能。

但是,我无法轻易找到实现此目的的浏览器机制。我以为这里的人可以帮忙吗?这不是XHR,因为一旦加载新页面,它将被取消。

javascript browser
1个回答
0
投票

您正在寻找navigator.sendBeacon()

此方法满足了分析和诊断代码的需求,通常尝试在卸载之前将数据发送到Web服务器文档。尽快发送数据可能会导致丢失收集数据的机会。但是,请确保已在卸载文档期间发送的邮件传统上对开发人员来说很难,因为用户代理通常会忽略卸载中发出的异步XMLHttpRequests处理程序。

为了解决此问题,分析和诊断代码具有历史上在卸载时进行了同步XMLHttpRequest调用,或者beforeunload事件处理程序提交数据。同步XMLHttpRequest阻止了文档的卸载过程,转弯会导致下一个导航速度变慢。什么也没有下一页可以避免这种页面加载不良的感觉性能,结果是用户感知到新的网页加载缓慢,即使真正的问题出在前一页。

[还有其他变通办法技术已用于确保提交此类数据。一种这样的技术是延迟为了通过创建元素提交数据而卸载在卸载处理程序中设置其src属性。作为大多数用户代理将延迟卸载以完成挂起的图像加载,数据可以在卸载期间提交。另一种技术是创建一个卸载处理程序中的无操作循环持续几秒钟,以延迟卸载数据并将其提交到服务器。

这些技术不仅代表不良的编码模式,它们是不可靠的,并且所有这些都导致人们对贫困的看法下次导航的页面加载性能。

这是sendBeacon()的来源。通过使用sendBeacon()方法,用户将数据异步传输到Web服务器代理商有机会这样做,而不会延迟卸载或影响下一个导航的性能。这解决了所有提交分析数据的问题:数据已发送可靠地,它是异步发送的,并且不会影响加载的下一页。此外,代码实际上更容易编写比其他任何一种技术都好!

© www.soinside.com 2019 - 2024. All rights reserved.