目前我正在使用 angularjs 和 nodejs
我的服务器中有一些角度模板,当角度请求模板时,模板将在浏览器中呈现并由浏览器缓存,如果假设我正在更改模板的布局并更新服务器中的模板,现在当用户被重定向到同一个模板时,浏览器会从旧的浏览器缓存中呈现模板。
如何克服这个问题?
注意:我不想清除我的整个浏览器缓存,因为它会影响我的整体网站性能。
在您未缓存的某些页面上,您可以附加?ver=
到 url 以“破坏”缓存。每当您更改 URL 时,都会导致浏览器重新加载资源。添加?ver=
到缓存资源并在需要重新加载时更改它。
创建一个单页应用程序,我使用AppCache解决了这类问题。使用应用程序缓存,您可以要求页面重新加载资源。从链接页面:
// Check if a new cache is available on page load.
window.addEventListener('load', function(e) {
window.applicationCache.addEventListener('updateready', function(e) {
if (window.applicationCache.status == window.applicationCache.UPDATEREADY) {
// Browser downloaded a new app cache.
// Swap it in and reload the page to get the new hotness.
window.applicationCache.swapCache();
if (confirm('A new version of this site is available. Load it?')) {
window.location.reload();
}
} else {
// Manifest didn't changed. Nothing new to server.
}
}, false);
}, false);
请注意,这仅适用于 Chrome、Firefox、Safari、Opera 和 IE10 等新浏览器。我想提出一种新方法。