我可以在iOS上运行的Safari中强制刷新缓存吗?


56

大多数Windows桌面浏览器都使用键盘组合Ctrl+ F5强制刷新特定于页面的缓存。基于Mac OS X的浏览器倾向于使用Command+ R。iOS上运行的Safari中的单个页面是否具有等效的缓存刷新功能?

我知道可以手动清除浏览器缓存,但是我只希望刷新当前正在查看的页面。



@ bassplayer7,它很接近但并不完全相同。Command + R仅刷新您正在处理的特定页面的资源。这意味着来自CDN的外部链接JavaScript也将被刷新。这不包括未引用的资源。这是给予桌面浏览器非常细粒度控制,是超级 web开发得心应手。
ahsteele

说得通。作为一名Web开发人员,我了解您的便利之处。我假设您已经这样做了,但我不禁不提-我将Adobe的该应用用于移动工作。而且,我认为重新启动Safari(虽然很麻烦)至少比按钮要刷新。不过,我还没有弄清楚它到底在刷新什么。
bassplayer7

按下地址栏中的刷新按钮是否也不会刷新缓存的内容?
格里

Answers:


36

在iOS 8中,强制退出对我来说并不可靠。使用私有模式进行测试的是什么:

  1. 以私有模式打开页面(并将其添加为书签,以便以后可以打开它)。
  2. 当您需要刷新时,关闭浏览器“选项卡”(您可以停留在Safari和私有模式下)。
  3. 再次打开页面(使用在步骤1中创建的书签)。

1
这不是一个很好的解决方案,但这似乎是iOS给我们提供的最佳解决方案。
布伦丹2015年

2
我如何进入“私人模式”?
linuxdan

在Mobile Safari中:点按两个正方形的图标,这将向您显示所有打开的选项卡,并在左下方显示“私人”模式按钮。support.apple.com/zh-CN/HT203036
马特·塞弗顿

从iOS 13.1.3开始,此功能不再起作用。
timbo

11

如果您的手机已连接到Apple计算机/笔记本电脑,则在Safari开发人员工具打开(和活动窗口)的情况下,您可以按以下步骤:

Command Key + Option + R


我敢打赌,如果您也将蓝牙键盘与手机配合使用,则此方法同样有效。
rinogo

@rinogo负面。我在ipad pro上使用了Apple Magic Keyboard键盘,而“ cmd + shift + r”在Safari浏览器中没有任何作用。
danielson317

7

如果您强制退出Safari(单击“主页”按钮,然后双击“主页”按钮,按住多任务栏中的Safari图标,然后点按红点),则Safari似乎将清除其缓存。但这将清除整个缓存,而不仅仅是单个页面。

您还可以在“设置”应用中清除Safari Cookie和数据。在“高级”下,您可以清除单个网站中的数据,如果您知道与要刷新的网页关联的所有网站,这些数据可能会起作用。


1
这对我不起作用(iOs 7.0.4)。
Nabil Kadimi 2014年

3
使用iOS 7,您可以从“最近执行的任务/多任务处理”列表中向上拖动该应用程序以强制退出该应用程序。
hotpaw2 2014年

1
iOS 7.1在这里,我通过Safari的远程开发人员工具进行了检查,似乎在强制退出应用程序后确实没有缓存资源(时间轴>网络请求)
fregante 2014年

5

您可以通过使用电缆将设备连接到计算机并启用Safari开发人员模式来强制该设备停止缓存文件。

  • 在移动设备上启用Web Inspector:
    设置> Safari>高级> Web Inspector
  • 在macOS上的Safari中启用开发工具:
    Safari>首选项>高级选项卡>在菜单栏中显示Develop
  • 将设备连接到计算机
  • 从计算机上的Safari打开设备的开发工具面板:“
    开发”>“示例的iPhone”>“ example.com/page”
  • 要禁用缓存,请转到“网络”选项卡,并确保“无缓存”的小图标是蓝色的(看起来像是带有划线的圆柱体)。
  • 现在,您应该可以随时在iOS设备上单击“刷新”,您将获得最新的非缓存版本!

如果您是Web开发人员,那么这是理想的方法,因为现在您可以访问极其有用的完整开发工具面板。而且,如果您需要一直获取新版本,则不必重复执行烦人的过程,而不仅是清除缓存一次。

如果您只是试图清除其缓存的一般用户,则可能要在这里使用其他方法之一。


更新:您现在可以通过WiFi连接到设备。可能仍需要使用电缆进行初始设置,但此后您可以在没有电缆的情况下进行连接。
开发>示例的iPhone>通过网络连接


1

转到“设置” >“ Safari” >“ 高级” >“ 网站数据” >“ 显示所有网站”,删除单个网站的缓存数据。

点击屏幕右下方的“ 编辑 ”,然后在列表中滚动或在搜索字段中进行搜索以找到要清除的网站。点击站点地址旁边的红色-图标,然后点击出现的“ 删除”按钮。

返回Safari并重新加载页面,所有网站的工件都将被重新加载。


这没有用。在我的iPad(iOS 12)上无法单击这些项目。
cheesus SO停止伤害莫妮卡

0

在Safari上启用开发人员模式。然后,您可以使用以下组合清除缓存:

Option-Key + Command-Mac-Key + E 

我认为,这只会删除您当时所在站点的缓存。


不幸的是,您的说明仅适用于Safari的桌面版。问题是关于iOS版本。
calum_b '18 -10-5

-1

双击刷新按钮。


7
这对任何人有用吗?双击只会停止我从第一次点击开始的刷新。
布伦丹2015年

是的,这是对我真正有效的唯一方法。不知道这是否会在野生动物园中引起轰动,但它是否有效。
本拉比杜

-3

您可以在脚本中添加随机数get或链接src,例如:

<link rel="stylesheet" href="css/main.css?rand=<?=$rand;?>" type="text/css" /> <script type="text/javascript" src="js/main.js?rand=<?=$rand;?>"></script>

这会迫使Safari重新加载文件,因为它认为这是一个不同的文件。


4
从用户方面如何工作?
nohillside

1
将随机参数附加到顶部的网址...?rand=15
Aaron Digulla

这称为“缓存清除”,这会导致URL字符串在浏览器看到时是唯一的。因此,它将永远不会在其缓存中找到该URL。(并且主机端只是完全忽略了GET-parameter。)但是,这实际上与OP的要求不同。
Mike Robinson

@AaronDigulla这不适用于CSS文件和图像之类的链接资源。
Flimm

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.