是否应该从每个页面调用服务工作文件,例如通过header.php,或者只是从站点索引中调用一个实例?
答案 0 :(得分:3)
一旦服务工作者注册,它就可以控制在其范围内访问过的任何页面,浏览器将自动check for updates是否进行了另一次调用{{} 1}}。
所以,足够只能在您的主要入口点上拨打navigator.serviceWorker.register()
,而不是在任何其他网页上再次呼叫它,如果您确定< / em>所有用户将至少通过该入口点一次。
话虽如此,多次致电navigator.serviceWorker.register()
并没有什么害处。只要每次都传递相同的URL,它就会有效地做什么&#34;什么都不做&#34;。不过,我是recommend using an absolute URL,因为相对网址将以当前网页的网址作为基础进行解释,如果您的网络应用使用路径下降到多个级别的网址,则可能会导致意外结果。在每个页面上调用navigator.serviceWorker.register()
的好处是,即使您的用户直接导航到您网站的子页面,您仍然可以注册服务工作人员,而无需先访问主页面。