2

我尝试使用 Html5 应用程序缓存在离线模式下运行我的应用程序。为此,我创建了 test.html 文件和 demo.appcache

在这个 html 页面中,我使用了来自本地主机的一些图像。当我的本地主机运行时,它工作正常。但是,如果我试图停止本地主机,图像不会从我的应用程序缓存中获取。输出只是显示为空白页。

这是我的 sampletest.html

<!DOCTYPE html>

<html manifest="demo.appcache">

<head>
</head>

<body>
Further modified........Test Again
<img src="http://172.17.0.238/SampleImages/two.jpg" width="225" height="151" alt="Milford Sound in New Zealand" />

</body></html>

demo.appcache

CACHE MANIFEST
CACHE:
sampletest.html
NETWORK:

倒退:

我的代码有什么问题吗?在缓存下:我加载了我的 html 文件。但是,当本地主机不可用时,它不会从应用缓存中加载 html。

任何帮助...问候,Lokesh。

4

3 回答 3

0

我有一个类似的问题。就我而言,我在 Android 设备中使用 WevView。在那里只需要 9 分钟来注册主机不可访问 - 然后它从 appcache 加载。我不知道其他代理是否有这样的行为,但值得一试;)


无论如何:如果它是第一个条目,则不必声明 CACHE 部分:

   CACHE MANIFEST
   sampletest.html
   NETWORK:

仅当您想在使用 NETWORK 或 FALLBACK 后添加更多要缓存的内容时:

   CACHE MANIFEST
   sampletest.html

   NETWORK:
   *

   FALLBACK:
   online.html offline.html

   CACHE:
   additionalContent.html

但是请不要问我为什么他们认为这必须是可能的;)

于 2012-08-01T08:55:24.303 回答
0

您必须在清单中包含页面所需的所有资源:图像、外部 javascript 和 css 等等。

于 2012-04-24T13:17:14.860 回答
0

您面临的问题主要是由于根据情况不同的错误代码。如果您的计算机无法访问 Internet,它不会尝试访问服务器,而是会尝试从 appcache 加载。

问题是当您的计算机可以访问 Internet 并且您关闭服务器时,错误会有所不同(它可能会返回 4xx 或 5xx 或等效值)。这是服务器问题而不是用户问题,因此将无法加载缓存。

否则,如果获取清单以其他方式失败(例如,服务器返回另一个 4xx 或 5xx 响应或等效响应,或者存在 DNS 错误,或者连接超时,或者用户取消下载,或者清单解析器失败检查魔术签名时),或者如果服务器返回重定向,或者如果资源被标记为文本/缓存清单以外的 MIME 类型,则运行缓存失败步骤。

这记录在这里: http ://www.w3.org/TR/2011/WD-html5-20110525/offline.html#downloading-or-updating-an-application-cache

于 2015-07-04T05:13:09.403 回答