【问题标题】:What happens when application cache fallback URLs are unloadable?当应用程序缓存回退 URL 不可加载时会发生什么?
【发布时间】:2013-03-27 02:28:36
【问题描述】:

MDC 声明当网络请求失败时浏览器会加载回退文件:

当尝试加载资源失败时使用后备条目。 例如,假设缓存清单文件 http://www.example.com/example.appcache 包括以下内容 内容:

CACHE MANIFEST
FALLBACK:
example/bar/ example.html

http://www.example.com/example/bar/ 或其任何请求的任何请求 子目录及其内容导致浏览器发出网络 请求尝试加载请求的资源。 如果尝试 由于网络故障或某种服务器错误而失败, 浏览器会加载文件 example.html。

从缓存中删除后备文件时会发生什么?

【问题讨论】:

  • 为什么浏览器要对明确定义为本地文件的东西发出网络请求,如果没有网络连接就可以使用?
  • @CBroe,后备文件应该在浏览器的缓存中......当文件被删除并且不再存在时会发生什么?
  • 我猜这会导致就像没有可用的网络连接并且请求的资源根本没有设置后备一样。

标签: javascript html web-applications html5-appcache


【解决方案1】:

在您尝试更新之前,备用文件仍将位于浏览器的应用程序缓存中。更新清单后,浏览器尝试更新将失败,按照"Downloading or updating an application cache" procedure 的第 17 项第 4 项:

如果上一步失败(例如服务器返回 4xx 或 5xx 响应或等效,或者存在 DNS 错误,或者连接 超时,或者用户取消下载),或者如果服务器 返回重定向,或者如果资源标记为“无存储” cache 指令,然后从 以下列表:[HTTP]

如果正在处理的 URL 被标记为“显式条目”或 “后备条目”

如果这些步骤正在为文件列表中的任何其他 URL 并行运行,则为这些其他 URL 中止这些步骤。运行缓存 失败的步骤。

如果这是一次更新尝试,以前版本的缓存将保持活动状态,如果是新尝试,则不会缓存任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 2011-12-22
    • 1970-01-01
    相关资源
    最近更新 更多