如何从Javascript中清除HTML5应用程序缓存?

时间:2010-07-04 08:50:05

标签: web-applications html5 iphone

我已经在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清除它的缓存。仍然收到错误消息。

这可能在应用程序缓存中吗?有没有办法积极清除它?

该应用程序似乎正在运行,但我想知道发生了什么。我可以安全地忽略这条消息,还是表明可能会在某个时候绊倒我的东西?

1 个答案:

答案 0 :(得分:0)

  

6.6.7 Expiring application caches

     

作为一般规则,用户代理应该   不会使应用程序缓存过期,除了   根据用户的要求,或之后   因为没有被闲置了   延长的时间。

     

应用程序缓存和cookie有   类似的含义   隐私(例如,如果网站可以识别   用户在提供缓存时,它   可以将数据存储在缓存中   用于cookie复活)。   因此鼓励实施者   公开应用程序缓存   与HTTP cookie相关的方式,   允许缓存缓存   连同饼干和其他   特定原始数据。

     

例如,用户代理可以拥有   “删除特定于站点的数据”功能   清除所有cookie,应用程序   缓存,本地存储,数据库等,   从一个起源一下子。

相关问题