我一直在开发一个使用离线缓存的网络应用程序,部分原因是为了减少使用中对服务器的调用次数。
我希望加载登录页面并缓存所有资源,以便登录后面的所有页面都不必。
我从服务器日志中注意到的是,虽然清单中的所有资源(图像,样式表,javascript文件)都是在加载登录页面时请求的,但是在用户登录后重定向到,例如, /workspace/
,Safari(桌面版和移动版)似乎再次请求/workspace/
中列出的样式表和javascript文件,从服务器生成HTTP 304
。
虽然服务304
的负担很小,但我想知道是否有办法避免这些。我在Chrome(开发频道)中测试了相同的代码,Chrome只在登录后再次请求缓存清单,就是这样。
会感激任何想法!提前谢谢!
答案 0 :(得分:0)
我在离线应用程序中注意到主机页面(其中带有清单标签的主机页面)也必须位于清单文件中(仅限于iPhone iOS 4.3),这支持在航空公司/离线模式下启动。 也许这也与你的问题有关。
我在iOS 4.3中遇到了离线模式的问题 (阅读本文以获得4.3问题http://www.theregister.co.uk/2011/03/15/apple_ios_throttles_web_apps_on_home_screen/中的更多见解)但是当我更新到4.3.2时它再次起作用。
答案 1 :(得分:0)
我在iOS 4.3.3中发现了一个有趣的情况。我有一个HTML5离线应用程序,可在iPad上的iOS 4.2中运行。但我将iPad更新到iOS 4.3.1,它无法再从主屏幕以离线模式运行。但是,当我看到“user593037”说它在iOS 4.3.2上运行时,我再次更新了我的iPad,今天更新了iOS 4.3.3。
最初,我的离线应用仍无法脱机工作。所以我回到了MOST基本的离线网页,我用“cache.manifest”作为它工作的清单文件名。因此,似乎在iOS 4.3.3上,离线缓存只有在用于缓存清单的文件名时才有效。我甚至尝试使用文件名cache2.manifest,它将无法脱机运行。
你也可以全屏运行,“apple-mobile-web-app-capable”设置为“yes”。