javascript - 防止html页面浏览缓存

标签 javascript html angularjs caching

我遇到的问题是部分文件 (*.html) 正在被浏览器缓存。虽然开发这不是一个大问题,但是一旦我部署了应用程序,客户就会看到旧页面,直到他们清除缓存或按 ctrl F5 我已经尝试指定元标记(CACHE-CONTROL,EXPIRES)但仍然看到这些页面被拾取 来自 chrome 开发者工具中的缓存(也许我在这里遗漏了什么?)。

我打算尝试在 url 前面添加一些随机数,例如

<div ng-include src="'views/test.html?i=1000'"></div>

但是遇到了https://groups.google.com/forum/#!topic/angular/9gORRowzP2M ,James Cook 正确地指出这种方式会一遍又一遍地用部分缓存填充缓存。

我在某处读到,最好在服务器的 header 中设置元标记,但我不知道该怎么做?我正在考虑以某种方式在 http 拦截器中执行此操作?也许以某种方式在此 httpinterceptor 的请求或响应中添加元标记? https://gist.github.com/gnomeontherun/5678505

任何想法如何做到这一点?或者这是好/坏主意?或者任何其他方式来防止部分页面被浏览器缓存?

最佳答案

为了防止缓存,在许多情况下不可能仅从客户端完全关闭它。您必须以正确的方式配置您的服务器,以便它生成正确的 HTTP header 。

但是在$templateCache的帮助下您可以将 html 部分从单个文件移动到 index.html 文件中的脚本标签中。这也将减少您的应用程序需要进行的 AJAX 调用次数。 使用 index.html 中的模板,您只需确保 index.html 未被缓存。

这里也有对它的讨论: Is there a way to make AngularJS load partials in the beginning and not at when needed?

关于javascript - 防止html页面浏览缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24424640/

相关文章:

javascript - 计算特定表上的行数

php - 通过点击 HTML 链接触发 PHP 函数

javascript - jQuery - 切换多个图像并保持 div 高度

javascript - Angular UI Grid 'gridApi.infiniteScroll.on.needLoadMoreData' 不适用于数据更改

javascript - Json解码 “Trying to get property of non-object”错误

javascript - jquery : how to set a css class for tr and td 的 DataTables 表插件

javascript - Webkit 中的同步重绘/等待 DOM 更新?

javascript - 修改 jQuery 以仅根据屏幕宽度触发特定的 CSS

jquery - 使用 jquery 访问 HTML5 数据属性

AngularJS 2 错误 : enableProdMode is not defined