【问题标题】:Offline app in asp.netasp.net 中的离线应用程序
【发布时间】:2012-07-07 00:58:51
【问题描述】:

我正在尝试创建一个具有离线功能的应用。我创建的清单文件如下所示 -

CACHE MANIFEST 
# version 1.0.0

CACHE:
/ShareBill.Web-Offline/
/ShareBill.Web-Offline/Groups
/ShareBill.Web-Offline/Content/Site.css
/ShareBill.Web-Offline/Content/jquery-ui.css
/ShareBill.Web-Offline/Scripts/ShareBill.js
/ShareBill.Web-Offline/Scripts/lib/jquery-1.7.2.min.js
/ShareBill.Web-Offline/Scripts/lib/jquery-ui.min.js
/ShareBill.Web-Offline/Scripts/TransactionsIndex.js
/ShareBill.Web-Offline/Content/Images/ajax-loader.gif
/ShareBill.Web-Offline/Content/Images/br_down_icon.png

NETWORK: 
/ShareBill.Web-Offline/Transactions/Filters

当我查看此 url /ShareBill.Web-Offline/Groups 时,我期望的是。我的浏览器不应向服务器发出任何请求,否则离线的全部目的将无效。

但正如我使用 fiddler 所观察到的那样,每次我刷新页面时,浏览器都会请求清单文件。我确保在 Chrome 开发工具中看到缓存的资源。

现在,当我关闭 IIS 并发出这样的请求时,我最终将 AppCache 状态设置为 OBSOLETE。然后在下一页刷新时,我得到一个 404 响应。我在实施方面遗漏了什么吗?

【问题讨论】:

  • AppCache 仅应设置为OBSOLETE,如果请求收到 404 或 410 响应,则您的服务器需要运行,浏览器才能接收此类响应。如果服务器没有运行,浏览器将不会收到任何响应。

标签: html caching offline-caching cache-manifest


【解决方案1】:

我将 Expires 标头应用于请求 Manifest 文件的请求。这很有效:)

【讨论】:

  • 你申请了什么过期的标头?该应用程序应该每次都请求清单文件,以便它可以找出是否有更新。
  • 我添加了 2050-01-01 (yyyy-mm-dd) 的到期日期。这实质上不会向服务器发出任何请求。还有一个问题,我需要在服务器端的文件任何js文件更新时清除应用程序缓存。即使我更新了我的清单文件,我也不会在客户端上得到这些更改,因为它自己的清单文件被缓存了。
  • 如果您的清单文件永不过期,那么您的应用缓存将永远不会更新,这就是浏览器每次都检查清单文件的原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 2011-02-21
  • 1970-01-01
  • 2017-05-23
  • 2015-11-12
相关资源
最近更新 更多