使用Beacon API完美记录活动过程而无需等待响应
Beacon API是一种将信息从浏览器发送服务器的轻量级高效方法,而且无需等待响应。它是一个基于JavaScript的Web api与传统的Ajax技术有很多不同之处。
什么是Beacon API?
Beacon API用于少量信息数据发送到服务器,而无需等待响应的过程,无需等待的部分是至关重要的,也是Beacon为何如此有用的关键,即使服务器发送响应,我们的代码也永远不会看到响应。
Beacon API用途:跟踪统计数据和分析数据
大多数人想到的它用途就是分析数据,实际项目中我们可以编写一些JavaScript来跟踪页面中发生的事情来统计与分析用户的需求方向(可能是用户如何与组件交互,他们滚动到多远,不同用户浏览的文章或内容等等),我们需要发送该数据用户离开页面时发送到服务器,Beacon API做得很完美的,因为我们只是记录数据而不需要响应。
Beacon API用途:调试和记录
平时我们项目中使用循环完成某种功能,但是往往会在发生时无法获得错误信息,而是通过JavaScript或打印到浏览器等方式,如果使用Beacon API检测错误并记录到服务器,这样我们就可以在不需要其他辅助调试的情况下,查看我们的记录就可以轻松知道错误信息。
实际上,任何日志记录任务都可以使用Beacon API执行完成,即在游戏中创建保存点,收集有关功能使用的信息,或记录多变量测试的结果,这些所以记录都可以完成,有人想,未来可能会使用在浏览器中,当浏览器发生其他错误的时候,记录然后发送给客户以便客户知道自己操作哪些功能导致错误,当然目前这个只是想象而且并没有使用在实际当中。
Beacon API各大浏览器支持非常好,基本没有实现所有功能,所有我们不需要担心兼容性问题。
结论
Beacon API是一种非常有用的记录运动方法,可以将数据从页面发送回服务器,尤其是在日志记录环境中,浏览器支持非常广泛,它使期末能够无缝地记录数据,而不会对用户的浏览体验和网站性能产生负面影响,请求的非阻塞性质意味着性能比XHR和Fetch等替代方案快得多。