2

我正在尝试使用 ASP.NET 构建 iPhone Web 应用程序。该页面为每个访问者动态呈现一次。此时,该页面可以被添加书签,并且该访问者将永远不会再更改。出于这个原因,它应该从那时起在本地缓存,这样即使没有可用的网络连接,如果从书签中引用,应用程序也会运行。无论我尝试什么,手机都会继续从服务器请求页面,强制重新渲染,或者如果手机离线,它会失败。

Louis Gerbarg这篇文章中建议我使用 HTML5 缓存清单来完成这项工作,但是遵循w3.org 文档似乎不适用于 iPhone。有没有人有一个应用程序缓存工作的好例子?

4

4 回答 4

7

缓存清单文件必须以“text/cache-manifest”mime 类型提供。这是绝对关键的,没有它就行不通。如果您导航到清单文件的 url,它应该会触发下载...

此外,我发现将清单位置作为绝对位置放在标记中,以及清单文件中的所有条目更有效。

于 2009-03-09T19:06:30.923 回答
5

我回答了您之前与此相关的问题,但从该问题中不清楚您是否正在尝试缓存动态内容。缓存清单用于获取您希望离线 Web 应用程序运行的静态内容。

我不确定你能做你想做的事。您是否希望该应用程序能够离线运行,或者您只是因为下载速度慢而试图将某些内容固定在缓存中?除非您实际上正在构建一个离线 web 应用程序(用户将其添加为书签或 Spring Board 中的应用程序),否则您的页面可以(并且必须)由浏览器自行决定从本地存储中逐出,无论多么松散您在页面上设置的缓存策略。

于 2008-11-07T21:54:26.857 回答
2

您应该使用适用于 iPhone 和 Safari 3.1 的 Safari Javascript Database API。它非常适合本地缓存和数据存储:

http://developer.apple.com/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/

于 2008-11-08T13:09:56.260 回答
1

这可能与输出的大小有关。

我不能谈论任何专门为 iphone 调整东西的严肃经验,但是 YUI 团队在这里读到了一篇有趣的文章:http: //yuiblog.com/blog/2008/02/06/iphone-cacheability/,这表明 iphone 中可以保存的最大解压缩缓存文件为 25k,并且为了获得最佳缓存,尽可能多的组件应 <25k。

这可能是您的问题的原因,但这只是一个猜测。

于 2008-11-07T22:10:03.657 回答