首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用angularjs和nodejs处理浏览器缓存?

问如何使用angularjs和nodejs处理浏览器缓存?
EN

Stack Overflow用户
提问于 2013-03-31 02:07:49
回答 1查看 4.5K关注 0票数 3

目前我使用的是angularjs和nodejs

我的服务器中有一些angular模板,当angular请求模板时,模板将在浏览器中呈现,它将被浏览器缓存,如果假设我正在更改模板的布局并更新服务器中的模板,现在当用户重定向到相同的模板时,浏览器将从浏览器缓存中呈现旧模板。

如何克服这个问题?

注意:我不想清除我的整个浏览器缓存,因为它会影响我的网站整体性能。

EN

回答 1

Stack Overflow用户

发布于 2013-03-31 02:13:53

实用

在一些你没有缓存的页面上,你可以将?ver=附加到url来“破坏”缓存。每当您更改URL时,都会导致浏览器重新加载资源。将?ver=添加到缓存资源中,并在需要重新加载时更改它。

有趣,但不太实用

在创建一个单页面应用程序时,我使用AppCache解决了这类问题。使用应用程序缓存,您可以要求页面重新加载资源。在链接的页面中:

代码语言:javascript
复制
// 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,火狐,Safari,Opera和IE10。我想提出一种新的方法。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15721739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档