抱歉,这是一个新问题。
我在AngularJS和UI Router中使用ocLazyLoad插件。我正在将ocLazyLoad与Ui路由器配合使用,以根据在Webapp中命中的路由在控制器中动态加载/延迟加载。
我的问题是浏览器是否会缓存这些延迟加载的脚本?如果存在,则可以强制浏览器下载新副本(无需关闭我的Web服务器上的缓存)。
我要解决的问题是,我希望使用MD5哈希提供新版本的index.html,以强制浏览器在每次部署Web应用程序的新版本时重新加载代码。因此,如果我加载一个新的index-1ab34c.html,则我担心的是,延迟加载的JS文件将是相同的旧缓存文件,而不是已部署的新代码。
最佳答案
这个问题实际上是由不同类型的问题问了100多次,角度路由器有一个缓存问题,这个问题的基本解决方案是版本。
台式机或笔记本电脑可以选择强制刷新ctrl + F5
,这有助于从一开始就重新加载所有文件,但是移动设备或平板电脑等设备没有此选项,因此您必须使用版本来处理此问题。
尝试对所有请求和文件进行版本控制,这有帮助
应用程序以获取新文件并按最新版本进行请求。
例:
var version = "0.0.1"; //0.0.2 // 0.0.9 // 0.1.0
//requests
$http.get("users?v=" + version).then(...);
//files
//loading with oclazyload or what you want no deference
"application/controller.js?v=" + version
版本是全局变量,因为您将在每次发布时从一个地方更改它。
关于javascript - 浏览器是否缓存了装有ocLazyLoad的脚本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48899612/