如何在Android版Chrome浏览器中强制重新加载


207

在桌面版Chrome浏览器中,我在开发工具中有一些选项可以在打开开发工具时完全禁用缓存,也可以在长按重新加载按钮(打开开发工具时)时手动进行硬重加载。

适用于Android的Chrome浏览器有这种技术吗?我没有找到任何设置。在开发时要强制浏览器下载一些javascript或css文件而不使用缓存的文件,该怎么办?



刚回来扩展(曾经是)一个稳定的Web应用程序,发现这种情况正在发生。最新状态数据存储在.js文件中,后缀为缓存无效的网址。在Windows,ChromeOS或Android上的Chrome中,此功能不再起作用。
Euan M

看起来像一次简单的刷新(单击圆圈w箭头)即可检测到这些天的任何更改。没有技巧。...让我知道我是否错了。
罗尼·罗伊斯顿

Answers:


167

我使用的是window.location.reload(true)根据MDN(和类似的问题),它强制重新加载页面从服务器。

您可以在浏览器中输入javascript:location.reload(true)地址栏来执行此代码。


7
只需在地址栏输入代码,并在代码前加上即可javascript:
Konrad Dzwinel 2013年

4
实际上,您应该能够避免出现这种window.情况。javascript:location.reload(true)应该可以。
Konrad Dzwinel 2013年

5
在chrome v55.0.2883.91 / android5.1.1上对我不起作用
Kev

20
它不适用于Android 7.1.1上的v56.0.2924.87。为什么您只能按一下刷新并让浏览器像过去那样重新下载?尝试发展时会遇到这种烦恼。
斯科特·威尔逊,

33
我打开隐身窗口
Deepak Kamat

132

以隐身模式查看页面将禁用缓存。这是我可以强制刷新样式表而无需通过设置手动清除缓存的唯一方法。


2
@Kev都不适合我。
Ricky Boyce

1
是的,这个适用于我在Android 6.0.1和Chrome 59上运行
。– Avio

4
至少在Android 7.1.2和Chrome 61上,此方法比公认的答案更好。缓存在某种程度上确实具有攻击性。即使清空该域的缓存文件对我也不起作用。
Ogier Schelvis,

我会更频繁地使用它,如果它对您不起作用,则可能是缓存位于服务器而非浏览器上。
Deepak Kamat

2
只会在隐身模式下第一次清除缓存。之后,出现同样的问题
Mara

75

也可以选择:

  1. 菜单
  2. 设定值
  3. 隐私
  4. 清除浏览数据
  5. 检查“缓存”,然后按“清除”

然后重新加载页面。


1
现在将其更改为Clear Browsing Data,您可以在其中clear cache使用复选框进行检查。
shaijut 2015年

1
否,然后杀死Chrome,重新启动Chrome,然后重新加载页面。是的,情况变得更糟。
ADTC

4
更新:即使杀死Chrome也不起作用。我不知道“清除缓存的图像和文件”选项到底要清除什么。它仍然保留在缓存的CSS文件中。这变得越来越荒谬!
ADTC

1
更新:请参阅海德格尔的答案。如果在Chrome设置中启用了“数据保护程序”,则清除缓存仍可能会从Google的服务器加载“缓存”结果。
ADTC

1
这将清除所有站点的缓存,而不仅仅是已检查的站点。
Obmerk Kronen

46

您可以使用应用程序菜单(位于地址栏右侧)中的“ 请求桌面网站”选项,这将强制重新加载页面。

只需点击它,等待刷新,然后取消选择它。


确认可以在Chrome上使用。略读时,我几乎错过了这个答案。删除了有关Firefox的注释,以帮助下一个人。我希望这不会与作者的意图冲突
Ishmaeel '02

1
当您遇到卡住的css或js文件时,这是迄今为止开发的最佳答案。我发现通常刷新效果很好,但有时由于某些莫名其妙的原因,js或css文件被卡住了,这是我发现的解除粘连的唯一方法。希望我能给出1个以上的赞成票,大声笑,因为它是如此简单。
Lizardx

8
以前可以使用,但自2017
chrome。– Capagris

1
这对我来说适用于三星Android 5.1.1上的Chrome 2018 65.0.3325.109; SM-T900内部版本/ LMy47X。它具有不破坏高速缓存的数据(例如localStorage值)的额外好处
CODE-READ

1
在2019年4月无法正常运行。Chrome73+无法正常运行。
东南再次罢工不幸的是

31

提及这一点是因为您提到了“开发时”。

您可以通过Chrome桌面浏览器控制移动设备。

chrome://inspect/#devices在您的桌面上访问。以及Inspect连接到桌面的设备。征得同意后同意。

现在,您应该在移动设备上看到完整的Devtool窗口,用于当前页面。

现在,使用桌面上的硬重装快捷方式(Cmd + Shift + R)在移动设备上进行硬重装!


3
这个评论已经过时了,但是让我走上了正轨。您必须先启用实际的手机才能通过Chrome进行调试。
德博拉

有关如何在Android手机上启用USB调试的详细说明,请参阅:stackoverflow.com/a/16707217/1024735。而且,此功能不仅具有硬重载功能,而且功能强大。谢谢!
kevinmicke

对于在Android模拟器中进行测试,devtools中的Ctrl + Shift + R确实非常好且快速。没有打开或关闭任何设置等。谢谢。
Rainer Schwarze

21

不要忘记确保已关闭“减少数据使用量”设置,因为即使您刷新了本地缓存,它似乎仍从Google服务器下载缓存的数据。


1
我认为此设置现在简称为“数据保护程序”。
Bletch

19

如何在适用于Android的Chrome移动设备上重置给定URL /网站的所有数据:

1-打开Chrome菜单,然后点击“ i(信息)”图标

之一

2-点击“网站设置”

二

3-点击垃圾桶图标

三

就是这样,即使是对该URL 最受关注的服务工作者现在也将死亡。


7
不会在Chrome 73.0.3683.90在三星S9 +工作。我已经尝试了15次以上,以及javascript:location.reload(true),但它不起作用。根据黑暗之王古格·乌尔(Guug-Ul)的说法,似乎Android用户也不能成为开发人员。
东南再次罢工不幸的是,

可以在我的Note 8上运行。但是我必须在之后刷新页面。
克里斯·库德莫

您也可以通过单击URL左侧的锁定图标(或任何显示不安全连接的内容)来获得此菜单。
克里斯·库德莫

迄今为止最好的解决方案!<3
bArraxas

12

我知道这是一个老问题,但我发现接受的答案对我不起作用。

一种替代的解决方案是URL以一个新的URL参数诸如附加website.com?a=1website.com?a=2

当然,如果已经有参数,则可以使用“&”号,即 website.com?q=test&a=1


这可行。?a如果您只想重新加载一次,就足够了。
Dan Dascalescu

11
这对于重新加载缓存的参考文件(如CSS或JS)不是很可行,因为?a除非您是站点主机,否则您无法真正编辑主HTML以添加-。
ADTC

7

自2018年起,来自Google帮助中心(已在Chrome 63上测试):

  1. 点击三点菜单 ;
  2. 选择“ 历史记录”>“清除浏览数据”
  3. 如果需要,选择时间(在清单上方);
  4. 取消选中除缓存的图像和文件以外的所有项目;
  5. 继续清除数据并确认。

如另一个答案中所述,隐身标签在开发中也很有用。


注意步骤3:选择时间段。因为我试图清除3周前的缓存页面,所以这对我来说是成功的窍门。
Dror

这不是您的错,但这是一个非常糟糕的解决方案,因为它也会清除所有其他站点的浏览数据,如果您将浏览器用于除开发工作以外的其他任何事情,这将是一个痛苦!
GameKyuubi

@GameKyuubi实际上,如果您从上一小时选择数据,则痛苦是有限的。但是,当然,这种解决方案非常差,我只引用了它,因为它是官方的并且确实有效(反之亦然)。
Skippy le Grand Gourou

这就是我的意思,这是官方的解决方案,这真令人尴尬。
GameKyuubi

7

我找到了一个可行的解决方案,但是很难看。

  • 使用USB电缆将Android设备连接至PC,然后在桌面上打开Chrome 。
  • 右键单击页面上的任意位置,然后选择“检查”。
  • 单击三点菜单,然后在“更多工具”菜单下选择“远程设备”:

    在此处输入图片说明

  • 在打开的面板中,选择设备,然后选择电话上需要刷新的选项卡名称旁边的“检查”按钮:

    在此处输入图片说明

  • 在打开的窗口中,单击“网络”选项卡,然后选中“禁用缓存”复选框:

    在此处输入图片说明

  • 重新加载手机上的页面或使用DevTools窗口中的重新加载按钮。

注意:如果您的电话未出现在设备列表中:

  • 确保USB连接正在使用文件传输模式并且不只是充电
  • 尝试重新启动ADB或运行adb devices以查看是否检测到设备

1
很棒的解决方案,它主要用于直接在桌面上“检查”设备的网页,您也可以清除缓存。谢谢。
juanram0n

这实际上是最美丽的答案。
John

6

远程调试允许您使用桌面开发工具:

https://developers.google.com/chrome-developer-tools/docs/remote-debugging


是的,谢谢,我已经知道了-应该已经提到了这一点,但是有时候我不想插入它,但仍然有此选项
Riesling 2013年

2
您可以按以下方式清除缓存:support.google.com/chrome/answer/2392709
Swonkie 2013年

5
谢谢,但是不刷新所有站点的整个缓存的选项会很好
Riesling 2013年

当启用网络>禁用缓存时,这是最可靠的选项
Rupert Rawnsley

6

Chrome的最新版本非常积极地缓存。甚至“ http:// url?updated = datecode ”之类的缓存清除技术也停止了工作。您每次必须清除缓存或启动隐身窗口(并确保关闭了数据存储)。


有趣的是,我没有意识到这一点。您是否有任何来源支持这项主张?
安托万(Antoine)

2
这只是我开发自己的Javascript应用程序时观察到的行为。我必须在开发Web服务器的HTTP标头中指定CACHE-CONTROL:NO-CACHE指令,以免被那些不会消失的错误所困扰(因为Chrome坚持缓存旧代码)。Firefox不会显示此行为。
格雷格·塞尔

4

我发现不需要将电话插入PC的唯一可靠方法如下:

1.强制停止Chrome应用。

必须先完成此操作,在完成这些步骤之前,您无法重新打开Chrome。有几种方法可以强制停止。大多数家用启动器都可以通过在Chrome图标上按住手指并选择“ i”图标来访问“应用程序信息”。另外,您也可以转到Android设置并仅搜索“ Chrome”。

进入“应用信息”后,选择“强制停止”,如下所示:


2.清除Chrome的缓存

在同一屏幕上选择“存储”:


最后,选择“清除缓存”。

当您返回Chrome应用时,页面应会重新加载并提供非缓存版本。

此外,我发现了一个站点,可以轻松测试是否清除了缓存:https : //refreshyourcache.com/en/cache-test/
我与它没有任何关系。请注意,清除该站点上提到的缓存的方法实际上已过时,并且不再有效。


1
完美,那是无需USB调试就对我有用的唯一解决方案。
Luis Lema

2

编辑:此方法已在Google Chrome中弃用,将不再起作用。

原始答案:

我能够使用chrome:// net-internals清除缓存(包括后续的xhr)

镀铬网内部

然后点击右上角的小箭头

菜单

从该菜单中选择“清除缓存”。


在铬75,铬://网内部表示,“最终,内部事件查看器和相关功能已被删除。”
BORT

@感谢您的注意。看来此方法不再起作用。
汤姆·凯

1

这是另一个可能在其他人失败时起作用的简单解决方案

今天,当缓存问题是缓存的CSS文件时,一个相当简单的开发人员端解决方案对我有用。简而言之:创建一个临时html文件副本并浏览到该副本以更新CSS缓存。

这个技巧至少可以在Android的蓝球图标默认浏览器中刷新CSS文件(但很可能是它的双胞胎,也就是官方的Chrome浏览器,以及我们在“智能”手机上遇到的其他任何浏览器,它们都具有积极缓存的趋势) )。

细节:

最初,我尝试了此处共享的一些相当简单的解决方案,但没有成功(例如,清除特定站点的最新历史,但几个月又一个月)。但是,我的最新CSS不会在刷新后应用。而且即使我已经在html头部分的CSS文件调用中使用了version-number-trick,也曾经帮助我避免了这些讨厌的激进式缓存。(例如:link rel =“ stylesheet” href =“ style.css?v = 001”,每次更改CSS文件(例如001、002、003、004等)时,您都会在此伪版本号上进行升级。 (应该在网站的每个html文件中完成)

这次(2019年8月)的CSS文件版本号更新已不再足够,这里提到的一些更简单的措施也对我不起作用,或者我什至找不到(在借来的android手机上)访问其中的某些内容。

最后,我尝试了一些相对简单的方法,最终解决了该问题:

我制作了该网站的index.html文件的副本,并为其指定了其他名称(indexcopy.html),然后将其上传,在Android设备上浏览至该页面,然后浏览回到原始页面并对其进行刷新(使用左侧的“刷新”按钮地址栏),然后贴吧:这次刷新index.html终于成功了。

说明:最新的CSS文件版本现在终于在刷新有问题的html页面时在Android上应用了,因为从其他地方不存在的具有不同名称的临时html页面调用CSS文件时,现在已更新了CSS文件的缓存副本。在浏览器历史记录中,之后我可以再次删除。主动缓存显然会忽略CSS URL,而改为使用HTML URL,即使需要在缓存中更新的是CSS文件。


可悲的是,这是当今似乎唯一可行的方法。这确实意味着,每当在CSS上工作时,您都需要不断更新wordpress中的functions.php以更新版本。是的,关于Google的另一件事是愚蠢的,他们没有思考,现在就与Microsoft合作。但是,是的,这是一个老把戏:)
加文·辛普森

1

如果只是包含文件的问题,只需在路径(?v=12345678)后添加版本

<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />

再次加载页面的人都会看到更改。


1
被低估的好答案!
lisandro
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.