我已经在iPhone的网络应用程序中实现了应用程序缓存,它似乎可以在移动Safari和我的桌面iMac上运行。
使用iOS4,Safari 5.0,MacOS X 10.6.4。
我正在使用Safari中的Webkit开发人员工具对其进行调试。
目前困扰我的是,当我启用调试器并运行它时,调试器控制台报告错误:
“无法加载资源:无法显示网址callButton24C.png”
png文件是我在App中使用的文件,或者至少那个是我用过的文件。我无法确定我的代码的哪一部分触发了错误。
最初我收到了很多资源文件的错误,因为我指的是错误的目录。我正在使用相对网址,我刚刚清理了我的文件夹布局,其中包括将主html文件移动到app文件夹的顶层,这需要更改图像网址“../Images / ..我的.js文件和html文件中的“to”Images / ...“,一切都很顺利。
这一切都得到了解决,但我开始注意到上面的错误仍然存在,即使应用程序似乎工作正常 - 我已经得到了那个或相关的错误投诉,因为我通过整理需要在我的文件夹重新调整之后调整的URL -安排。
我尝试复制app文件夹并从那里运行它 - 同样的事情。
然后我对文件的名称和指向它的所有url做了一个小的更改,并且在通过缓存更新过程工作之后,让它全部工作了,但我仍然得到相同的消息,旧图像文件名。
我通过文件夹中的所有文件搜索对旧名称的任何引用 - 没有。
我告诉Safari清除它的缓存。仍然收到错误消息。
这可能在应用程序缓存中吗?有没有办法积极清除它?
该应用程序似乎正在运行,但我想知道发生了什么。我可以安全地忽略这条消息,还是表明可能会在某个时候绊倒我的东西?
答案 0 :(得分:0)
6.6.7 Expiring application caches
作为一般规则,用户代理应该 不会使应用程序缓存过期,除了 根据用户的要求,或之后 因为没有被闲置了 延长的时间。
应用程序缓存和cookie有 类似的含义 隐私(例如,如果网站可以识别 用户在提供缓存时,它 可以将数据存储在缓存中 用于cookie复活)。 因此鼓励实施者 公开应用程序缓存 与HTTP cookie相关的方式, 允许缓存缓存 连同饼干和其他 特定原始数据。
例如,用户代理可以拥有 “删除特定于站点的数据”功能 清除所有cookie,应用程序 缓存,本地存储,数据库等, 从一个起源一下子。