19

我正在尝试在我的 iPhone4 (iOS4) iPad1 (iOS3.3) 和桌面上调试网站。

我的问题是我根本无法清除 iPhone 缓存。

如果我将警报/控制台添加到我正在调试的 js 文件中,它们会显示在 iPad 和桌面上,但 iPhone 只是不断从缓存中重新加载。

如果我通过 Safari 清除缓存settings>safari>delete browser history, cache, cookies并在 Safari 中删除所有书签并删除服务器、iPad 和桌面中断(丢失文件)上的文件,但 iPhone 仍会加载页面,就好像什么都没发生一样。

不确定这是问的正确地方,但也许其他人有类似的经历和想法如何解决?

谢谢!

编辑
我又玩了一些。如果我通过图标启动应用程序,缓存似乎已清除。只有当我在 Mobile Safari 中打开页面时,它仍然使用缓存中的错误文件。仍然欢迎指点!

编辑
我正在为此开始赏金。我在网站上使用 RequireJS 和 JqueryMobile,所以这些也可能是缓存未清除的原因。不过,我不明白为什么它会在应用程序模式下清除,以及为什么它在 Mobile Safari 中无法清除。

我尝试了以下方法:
1. 在 URL 栏中单击reload page不会清除缓存。单击链接然后通过加载页面go似乎确实会偶尔清除缓存

4

5 回答 5

18

即使这有点hacky,也可以尝试一下这个解决方法(我假设这是为了开发)

根据此处禁用 ajax 缓存的注释如何在 Safari 浏览器中禁用 Ajax 缓存?您可以在开发时设置无缓存标头或像这样在纯 HTML 中设置

<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">

显然它不会解决您最初被卡住的问题。但是您可以通过添加任意查询参数 ?something=3164 来打破循环,因此 URL 实际上是唯一的。然后下次它加载时希望它会保留无缓存参数。

如果即使这样也不起作用,您可以设置一个书签,每次将您重定向到不同的 random=14361 号码,因为它们都是有效的唯一呼叫 - 但是我们进入了愚蠢的领域!

我想要一个合适的解决方案,但是当我开发 JS webapps 时,我发现有时一切都会正确刷新一段时间,然后有时它不会......我无法分辨出真正的模式 - 除了我认为的事实启用调试器时它似乎做得更少(但这完全没有证实;-)

于 2012-08-06T10:36:13.543 回答
5

为 iOS 移动开发时,您可以通过 USB 将手机插入计算机并使用开发工具轻松清除缓存:

  1. 在手机中,启用开发工具:设置/Safari/高级
  2. 在电脑中,启用 Safari 开发菜单:设置/高级
  3. 确保移动 Safari 已打开并检查手机:Develop/PHONE_NAME/TAB_NAME
  4. 现在你按 cmd-shift-r 清除手机中的缓存
于 2014-04-17T11:24:50.270 回答
2

尝试停止 safari 并重新启动它并删除 safari 中的所有页面....查看图片如何关闭页面在此处输入图像描述

于 2012-08-01T07:34:28.307 回答
2

您正在处理HTML5“离线”应用程序吗?离线应用程序清单文件的使用是相当新的,并且每个浏览器都有奇怪的怪癖。修改服务器上的清单文件,iPhone 应该再次获取页面。

编辑:如果您曾经有一个清单文件(以及指向它的 HTML 属性),如果您以错误的顺序删除清单,您的缓存可能会变得混乱:

  1. HTML 和清单存在
  2. 删除清单文件,然后重新加载 HTML 页面 => HTML 页面应该取消清单,因为清单 404 的,但在某些浏览器上它没有。
  3. 修改 HTML => HTML 页面不会取消缓存,因为(不存在的)清单文件没有更改。

要正确取消显示它,请尝试:

  1. 重新添加 HTML 和清单
  2. 先移除 HTML manifest 属性,然后重新加载页面
  3. 然后从服务器中删除清单文件。
于 2012-08-06T19:36:32.493 回答
1

还有另一种解决方案,无需重新启动设备进行 safari,

  1. Settings
  2. 然后下楼去Safari
  3. 然后向下查看选项Clear Cookie and Data,如下图所示iPhone Safari 清除 Cookie 和数据

  4. 现在回到你的野生动物园,你就完成了!

如果您在下面有任何问题评论。

于 2012-08-08T16:32:58.607 回答