【问题标题】:SPA : HTML changes on run time [duplicate]SPA:运行时的 HTML 更改 [重复]
【发布时间】:2018-01-15 11:56:59
【问题描述】:
当我们对 HTML 文件或 java 脚本文件进行任何更改时,有时 UI 不会通过简单的刷新来反映这些更改,我们需要清除浏览器 cookie/历史记录以反映更改。
我想知道是否存在通过代码清除浏览器 cookie/历史记录的任何选项。 这是个好习惯吗?
我没有找到解释单页应用程序最佳实践的文章
【问题讨论】:
标签:
javascript
html
caching
single-page-application
browser-cache
【解决方案1】:
这是由于cache 问题而发生的。在您的 HTML 标记中添加以下行,看看问题是否已解决。
<meta http-equiv="cache-control" content="max-age=0" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
<meta http-equiv="pragma" content="no-cache" />
【解决方案2】:
使用快捷键“Shift+F5”刷新
或使用随机值的查询字符串加载脚本
像这样
<script src="~/Scripts/scriptFile.js?[random value]"></script>
【解决方案3】:
Shift + F5 或 Ctr + F5 = 重新加载当前页面,忽略缓存内容
【解决方案4】:
实现您想要看到的内容的一种方法(我认为...)是将 url 参数添加到加载资产的路径。
例如,如果你正在加载一个 css 文件:
<link rel="stylesheet" type="text/css" href="css/style.css">
尝试将其更改为:
<link rel="stylesheet" type="text/css" href="css/style.css?ver=1.1">
每当您更新样式表时,要强制浏览器重新加载样式表,而不是使用缓存在浏览器中的副本,请更改 url 参数:
<link rel="stylesheet" type="text/css" href="css/style.css?ver=1.2">
同样的原则也适用于外部 javascript。
此外,您可以通过.htaccess 控制缓存
https://gist.github.com/hans2103/fca6f184df1c2c41b3dd
正如 Kavish Mittal 所指出的,这可以在 html 文档中处理。