是否应该在每个单独的页面上调用服务工作进程文件?



例如,应该从每个页面调用服务工作进程文件.php通过标头调用,还是仅在站点索引的一个实例中调用?

注册服务工作者后,它可以控制在其范围内访问的任何页面,浏览器将自动检查是否有另一个调用navigator.serviceWorker.register()更新。

因此,如果您确定所有用户至少会通过该入口点一次,则只在主入口点上调用navigator.serviceWorker.register()而不在任何其他页面上再次调用它就足够了。

话虽如此,多次打电话给navigator.serviceWorker.register()并没有什么坏处。只要每次都传入相同的 URL,它就会有效地"什么都不做"。不过,我建议使用绝对 URL,因为相对 URL 将以当前页面的 URL 为基础进行解释,如果您的 Web 应用使用的 URL 具有多个级别的路径,则可能会导致意外结果。在每个页面上调用navigator.serviceWorker.register()的优点是,即使您的用户直接导航到站点的子页面,您最终仍会注册服务工作进程,而无需先访问主页。

最新更新