Html5应用程序缓存

时间:2012-04-24 13:10:13

标签: html5 html5-appcache

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

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

这是我的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:

FALLBACK:

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

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

3 个答案:

答案 0 :(得分:0)

您必须在清单中包含您所需的所有资源:图片,外部JavaScript和CSS等。

答案 1 :(得分: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

但请不要问我为什么他们认为必须这样做;)

答案 2 :(得分:0)

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

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

  

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

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