使HTML5应用程序脱机可用



我正在为客户端使用HTML应用程序。整个应用程序前端使用1个HTML文件,1个JavaScript文件,1个CSS文件(加上jQuery)和一些图像完成。服务器上有一些PHP脚本,使用AJAX称为,但前提是有Internet连接可用。如果没有可用的连接,则该站点将使用本地缓存的数据(使用localStorage)。

要使网站脱机可用,我在HTML中声明了缓存表现。我的html看起来像这样:

<!DOCTYPE html>
<html manifest="cache.manifest.php" language="en">
...
</html>

cache.manifest.php的输出看起来像:

CACHE MANIFEST
#VersionHash: 80b9345e6c39efbbe8431e394b014b4f
CACHE:
/css/ebot.css
/favicon.ico
/images/appicon.png
/images/list-arrow.png
/images/list-checkmark.png
/images/woman.png
/index.html
/js/jquery-1.8.3.min.js
/js/ebot.ls.js
NETWORK:
/emaillog.php
/getdata.php
/uploadlog.php

到目前为止一切都很好。现在,我可以从浏览器访问具有Internet连接的浏览器。我收到一些通知,询问是否允许该网站存储脱机信息 - 我允许。当我签到设置时,我看到该站点存储了316K数据 - 大约正确。

现在,我关闭Internet连接并尝试访问http://www.mysite.com/index.html-并获取一条错误消息,说" Internet连接不可用"(或某种程度上的内容),并且页面未显示。这是在我在Dev Machine(Firefox,Safari和Chrome)以及客户iPad上测试的3个浏览器中进行的(该应用程序最终用于iPad上的消费)。

我在这里想念什么?我在做什么错?

可能有很多原因。看这篇文章:

  • http://www.fuckyeahtml5.com/2011/06/debugging-html5s-fline-web-apps
  • http://appcachefacts.info/
  • http://diveintohtml5.info/offline.html
  • https://developer.mozilla.org/en/docs/html/using_the_application_cache

我想您没有为您的清单指定正确的内容类型(MIME)。它被认为是"文本/缓存manifest"。在Chrome中检查控制台中的事件。当AppCache清单正确时,您应该看到这样的东西:

使用清单http://example.com/manifest.appcache创建应用程序缓存
应用程序缓存检查事件
应用程序缓存下载事件
应用程序缓存进度事件(XXX的YYY)
应用程序缓存缓存事件

我建议从最简单的清单开始,以确保清单被解析。尝试:

CACHE MANIFEST
NETWORK:
*

这样的清单应仅缓存您的开始HTML页面。

相关内容

  • 没有找到相关文章

最新更新