首页 > 解决方案 > ServiceWorker 不会拦截来自动态加载页面的脚本请求

问题描述

我已经使用 .net 核心 Web 应用程序实现了服务工作者。应用程序是单页并通过 jquery 加载功能加载其他页面。主页具有缓存,其中包含应用程序完全脱机运行所需的所有资源。到目前为止一切顺利,工作人员的范围设置为 / 级别。一切正常,直到我注意到动态加载的页面或部分视图上的脚本不由工作人员提供服务,尽管它们在缓存中。服务人员确实在主页上为他们服务。

这给我的印象是,无论服务工作者的范围是什么,它都不会在动态加载的部分页面上提供缓存,而只会在它被激活的页面上提供缓存。

如何在那些动态加载的部分视图上使主页服务缓存?Service Worker 如何决定从缓存中提供资源的位置?如果范围设置为 root 那么为什么不提供脚本呢?

我已经阅读了很多关于它的文档,但我没有在哪里读到无论服务工作者的范围是什么,它只会在它被激活的页面上提供服务,无论你是否在没有真正页面导航的情况下动态加载页面。

编辑:

找到了。可能它会节省一些时间和头痛。部分页面加载是通过jquery加载功能,需要同步解析html和脚本,如果请求是同步的,则fetch不会拦截。现在需要找到解决方法。

标签: service-worker

解决方案


推荐阅读