在桌面版Chrome中,我在开发工具中有选项可以在打开开发工具时完全禁用缓存。我可以选择在长按“重新加载”按钮时手动执行硬重新加载(打开开发工具)。
Chrome for Android是否有这样的技术?我没有找到任何设置。 当我想强制浏览器下载某些javascript或css文件而不是在开发时使用缓存文件时,我该怎么办?
答案 0 :(得分:149)
我根据MDN使用window.location.reload(true)
(以及this类似问题)它强制页面从服务器重新加载。
您可以在地址栏中输入javascript:location.reload(true)
在浏览器中执行此代码。
答案 1 :(得分:53)
也是一个选项:
然后重新加载页面。
答案 2 :(得分:37)
您可以使用应用菜单中的请求桌面版网站选项(位于地址栏右侧),这将强制重新加载页面。
只需点击它,等待刷新,然后取消选择它。
答案 3 :(得分:23)
提到这一点是因为你提到了#34;在开发"。
时您可以通过Chrome桌面浏览器控制移动设备。
访问桌面上的chrome://inspect/#devices
。并且Inspect
设备已连接到您的桌面。在被要求许可时同意。
您现在应该可以在移动设备上看到当前页面的完整Devtool窗口。
现在,使用桌面上的硬重装快捷方式(Cmd + Shift + R)在移动设备上进行硬重装!
答案 4 :(得分:20)
不要忘记确保"减少数据使用量"设置已关闭,因为它似乎下载了缓存数据(来自Google服务器?),即使您的本地缓存已刷新。
答案 5 :(得分:10)
我知道这是一个老问题,但我发现接受的答案对我不起作用。
另一种解决方案是使用新的url参数附加url
例如website.com?a=1
,website.com?a=2
等
如果你已经有参数,你当然会使用&符号
即website.com?q=test&a=1
答案 6 :(得分:6)
Chrome的最新版本非常积极地缓存。即使是缓存破坏技术,例如" http://url?updated=datecode"停止工作。您必须每次清除缓存或启动隐身窗口(并确保数据保护程序已关闭)。
答案 7 :(得分:6)
截至2018年,来自google help center(在Chrome 63上测试):
正如另一个答案中所提到的,隐身标签也非常适合开发。
答案 8 :(得分:5)
答案 9 :(得分:3)
如何在适用于Android的Chrome移动设备上为给定URL /网站重置所有数据:
1-打开Chrome菜单,然后点击“ i(信息)”图标
2-点击“网站设置”
3-点击垃圾桶图标
就是这样,即使对该URL最为了解的service worker也将消失。
答案 10 :(得分:3)
我找到了一个可行的解决方案,但这很丑。
单击三点菜单,然后在“更多工具”菜单下选择“远程设备”:
在打开的面板中,选择您的设备,然后选择电话上需要刷新的选项卡名称旁边的“检查”按钮:
在打开的窗口中,单击“网络”选项卡,然后选中“禁用缓存”复选框:
在手机上重新加载页面或使用DevTools窗口中的重新加载按钮。
注意:如果您的手机未出现在设备列表中:
- 确保USB连接正在使用文件传输模式并且不只是充电
- 尝试重新启动ADB或运行
adb devices
以查看是否正在检测设备
答案 11 :(得分:2)
答案 12 :(得分:1)
我发现不需要将电话插入PC的唯一可靠方法如下:
1。强制停止Chrome应用。
必须首先完成 ,并且在完成这些步骤之前,您无法重新打开Chrome。有几种方法可以强制停止。大多数家庭启动器都可以通过在Chrome图标上按住手指并选择“ i”图标来访问“应用程序信息”。另外,您也可以转到Android设置并仅搜索“ Chrome”。
在“应用信息”中选择“强制停止”,如下所示:
2。清除Chrome的缓存
在同一屏幕上选择“存储”:
最后,选择“清除缓存”。
当您返回Chrome应用时,页面应重新加载并提供非缓存版本。
此外,我发现了一个网站,可以轻松测试是否清除了缓存:https://refreshyourcache.com/en/cache-test/
我绝不隶属于它。请注意,清除该站点上提到的缓存的方法实际上已经过时,并且不再有效。
答案 13 :(得分:1)
键盘快捷键(例如Ctrl + Shift + R)也可以在Android上使用,您只需要一个能够发送这些键的键盘即可。我使用了Hacker's Keyboard 发送Ctrl + Shift + R,这在我的手机上进行了重新加载。
答案 14 :(得分:0)
这是另一个简单的解决方案,当其他人失败时可能会起作用:
今天,当缓存问题是缓存的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文件。
答案 15 :(得分:0)
如果只是包含文件的问题,只需在路径(?v=12345678
)后面添加版本
<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
再次加载页面的人都会看到更改。
答案 16 :(得分:0)
大多数答案都不适合我。 这是2020年8月在我的Galaxy S8上进行的超级简单的工作:
在您的http:....地址之前添加“ view-source:”,如果与html或索引不同,则在其中浏览到更改的文件。
您将看到未更改的文件。刷新。
完成。
答案 17 :(得分:0)
我一直在努力寻找一个不会刷新的CSS文件。但是您可以在地址栏中键入CSS文件本身的名称,然后刷新它。之后就可以了。 Android 8上的Chrome。显然,如果涉及多个文件,那将很累。
答案 18 :(得分:0)
在 Chrome 中,只需勾选“桌面站点”,然后取消勾选!!
答案 19 :(得分:0)
添加参数给url傻瓜浏览器以加载新页面。我为此编写了一个函数:
function forceReload(){
function setUrlParams(url, key, value) {
url = url.split('?');
usp = new URLSearchParams(url[1]);
usp.set(key, value);
url[1] = usp.toString();
return url.join('?');
}
window.location.href =setUrlParams(window.location.href,'_t',Date.now());
}
你只需要调用它:
forceReload();
答案 20 :(得分:0)
如果这是一个选项,您可以直接访问(即 JavaScript)资源,重新加载多次,这也会触发该资源的硬重新加载。然后您可以再次重新加载实际页面。
答案 21 :(得分:-2)