[英]Waiting for window load event to register service worker
我偶然发现了Google Workbox文档中的这个代码段:
<script>
// Check that service workers are registered
if ('serviceWorker' in navigator) {
// Use the window load event to keep the page load performant
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js');
});
}
</script>
没有窗口load
事件处理程序,页面加载如何变得不那么高效?
服务工作者是否应该尽早联系起来,因为PWA的主要用途之一就是缓存?
服务工作者在主线程的后台加载,但它们仍然消耗计算机资源,如果预先缓存,则消耗网络资源。 如果当前呈现页面需要500KB进行渲染,并且您希望将页面预先缓存为完全脱机工作,则服务工作者还必须下载该500KB。 这与正在呈现的当前页面竞争,因此建议延迟注册服务工作者,直到当前页面为用户准备好。
您可以阅读有关在Web基础上注册服务工作者的更多信息。
这不是阻塞加载事件监听器。
您无论如何都需要加载所有资源,然后服务工作者将它们存储在浏览器中。
下次用户访问应用程序时,服务工作者已经在那里。 准备从浏览器的缓存中提供资源。
服务工作者没有使用主线程运行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.