首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTML5离线清单/功能如何与ASP.NET MVC 4协同工作?

HTML5离线清单/功能如何与ASP.NET MVC 4协同工作?
EN

Stack Overflow用户
提问于 2013-04-28 19:24:28
回答 1查看 2.6K关注 0票数 2

好的,我正在为一个需要离线功能的移动应用程序构建一个PoC,我有几个问题要问我是否正在正确地设计应用程序,以及我将从缓存清单中得到什么行为。

这个问题是关于在清单的缓存部分以及网络部分中包括Controller操作的URL。

我想我在网上读过一些关于这方面的相互矛盾的信息。在一些我读到的网站中,包括网络部分的通配符将使浏览器在在线时尝试从服务器检索所有内容,如果没有互联网连接,只需使用缓存的任何内容。

然而,今天早上我在深入HTML5 :让我们把这个脱机上读到了以下内容

标有“网络”的行:是“在线白名单”部分的开头。本节中的资源从未缓存过,脱机也不可用。(尝试在脱机时加载它们将导致错误。)

那么,哪种信息是正确的呢?如果我在缓存和网络部分中添加控制器操作的URL,应用程序将如何运行?

到目前为止,我有一个非常简单和小的PoC,这就是我对这个问题所观察到的:

  1. 我有一个控制器操作,它只生成4个随机数并在ViewBag上设置它们,视图将在UL上显示它们。
  2. 我根本不使用输出缓存。唯一的缓存来自清单文件。
  3. 在将清单属性添加到我的Layout.cshtml的html标记之前,每当我请求View时,我每次都会得到不同的随机数,并且在控制器操作上设置一个断点。
  4. 在添加清单属性后,当我第一次请求URL/View时,控制器上的断点将被击中3次(而不是之前的1次)。这已经很奇怪了,我会发布一个单独的问题,我只是写在这里,以供参考。
  5. 在清单和资源被缓存之后(通过查看Chrome工具上的控制台窗口来验证),每次我请求View/URL时,我都会得到缓存的版本,并且断点再也不会被击中。

这种行为让我相信,缓存部分中的任何内容都会覆盖或忽略网络部分上的任何内容,但正如我说的(我在这里问的原因)是因为我对此并不熟悉,我不确定这是应该如何工作的,还是我遗漏了什么或者没有正确地使用它。

任何帮助都是非常感谢的。

下面是cache.manifest的相关部分:

代码语言:javascript
复制
CACHE MANIFEST
#V1.0
CACHE:
/
/Content/Site.css
/Content/themes/base/jquery-ui.css

NETWORK:
*
/

FALLBACK:
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-09 02:52:55

事实证明,html5应用程序缓存或清单缓存的工作方式与我预期的不同。

下面引用whatwg.org的一句话,很好地解释了这一点:

离线Web应用程序

如果应用程序逻辑与应用程序和用户数据分离,并且清单中列出并存储在应用程序缓存中的逻辑(标记、脚本、样式表、图像等)、应用程序的静态HTML页面数量有限、应用程序存储的应用程序和用户数据或客户端索引数据库中存储的应用程序和用户数据(使用works、XMLHttpRequest、服务器发送事件或其他类似机制动态更新),则应用程序缓存功能工作得最好。 然而,传统应用程序的设计倾向于将用户数据和逻辑混合到HTML中,每次操作都会从服务器生成一个新的HTML页面。 混合内容模型与应用程序缓存特性不能很好地工作:由于内容是缓存的,因此用户总是会看到缓存更新时的陈旧数据。 虽然无法使遗留模型像分离的模型那样快速工作,但至少可以使用首选联机应用程序缓存模式对其进行改造,以便脱机使用。为此,列出您希望在应用程序缓存清单中脱机工作的HTML页面使用的所有静态资源,使用清单属性从HTML文件中选择该清单,然后在清单底部添加以下一行:

代码语言:javascript
复制
SETTINGS:
prefer-online
NETWORK:
*

因此,事实证明,应用程序缓存并不适合在服务器上呈现动态信息的页面。whatwg.org称这类应用为“遗留应用”。

为了自然地适应应用程序缓存,您只需要在html页面上具有显示和通用逻辑,并通过ajax请求检索任何动态信息。

希望这能有所帮助。

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

https://stackoverflow.com/questions/16266817

复制
相关文章

相似问题

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