在Chrome的桌面,我有选项在开发工具完全禁用缓存时,开发工具被打开,我有选项手动做一个硬加载时,长时间点击重新加载按钮(与开发工具打开)。
Chrome for Android有这样的技术吗?我没有找到任何背景。 当我想强迫浏览器下载一些javascript或css文件,而不是使用一个缓存时,我该怎么做?
在Chrome的桌面,我有选项在开发工具完全禁用缓存时,开发工具被打开,我有选项手动做一个硬加载时,长时间点击重新加载按钮(与开发工具打开)。
Chrome for Android有这样的技术吗?我没有找到任何背景。 当我想强迫浏览器下载一些javascript或css文件,而不是使用一个缓存时,我该怎么做?
远程调试允许您使用桌面dev-tools:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
我使用window.location.reload(true)根据MDN(和这个类似的问题)它迫使页面从服务器重新加载。
你可以在浏览器的地址栏中输入javascript:location.reload(true)来执行这段代码。
我知道这是一个老问题,但我发现这个公认的答案并不适用于我。
另一种解决方案是用一个新的url参数附加url 例如,website.com?a=1, website.com?a=2,等等。
当然,如果已经有参数,则可以使用&号 如website.com ? q =测试= 1
提到这一点是因为你提到了“开发时”。
你可以通过Chrome桌面浏览器控制移动设备。
访问chrome://检查/#设备在你的桌面上。并检查连接到桌面的设备。在被要求允许时同意。
您现在应该在移动设备上看到针对当前页面的完整的Devtool窗口。
现在,使用硬重载快捷方式(Cmd+Shift+R)在桌面上做硬重载移动设备!
最新版本的Chrome缓存非常激进。甚至像“http://url?”Updated =datecode"停止工作。您必须每次都清除缓存或启动一个隐身窗口(并确保数据保存程序关闭)。
截至2018年,来自谷歌帮助中心(在Chrome 63上测试):
点击三点菜单; 选择历史记录>清除浏览数据; 如果需要,请选择时间段(在检查表上方); 取消所有项目,但缓存的图像和文件; 清理数据并确认。
正如在另一个回答中提到的,隐身标签在开发中也很有用。
编辑:此方法已弃用在谷歌Chrome浏览器,将不再工作。
最初的回答:
我能够清除缓存(包括后续xhr)使用chrome://net-internals
然后点击右上方的小箭头
从菜单中选择“清除缓存”。
我找到了一个可行的办法,但很难看。
Connect the Android device to your PC with a USB cable and open Chrome on your desktop. Right-click anywhere on a page and select "Inspect". Click the three-dot menu and select "Remote devices" under the "More tools" menu: In the panel that opens, select your device and then the "Inspect" button next to the name of the tab on your phone that needs to be refreshed: In the window that opens, click the "Network" tab and check the "Disable cache" checkbox: Reload the page on your phone or using the reload button in the DevTools window.
注意:如果你的手机没有出现在设备列表中: 确保USB连接使用的是文件传输模式,而不是简单的充电 尝试重新启动ADB或运行ADB设备,看看设备是否被检测到
如何重置一个给定的URL /网站在Chrome移动android上的所有数据:
1 -打开Chrome菜单,点击“i (info)”图标
2 -点击“站点设置”
3 -点击垃圾桶图标
就是这样,即使是该URL最深入的服务工作者现在也将死亡。
我发现的唯一不需要把手机插到电脑上的可靠方法如下:
1. 强制停止Chrome应用程序。
这必须首先完成,你不能重新打开Chrome,直到你完成这些步骤。有几种强制停止的方法。大多数家用启动器会让你通过在chrome图标上按住手指并选择“i”图标来获得“应用程序信息”。或者,你可以进入Android设置,然后简单地搜索“Chrome”。
在“App info”中,选择“强制停止”,如下图所示:
2. 清除Chrome的缓存
在同一屏幕上选择“Storage”:
最后,选择“清除缓存”。
当你返回Chrome应用程序时,页面应该重新加载自己,并提供一个非缓存版本。
此外,我还发现了一个网站,可以很容易地测试你是否清除了缓存:https://refreshyourcache.com/en/cache-test/ 我和它没有任何关系。请注意,清除该站点上提到的缓存的方法实际上已经过时并且不再有效。
这是另一个简单的解决方案,当其他人失败时,它可能奏效:
今天,当缓存问题是缓存的CSS文件时,一个相当简单的开发人员端解决方案对我来说是有效的。简而言之:创建一个临时html文件副本,并浏览到它来更新CSS缓存。
这个技巧可以刷新CSS文件,至少在Android的蓝色全球图标默认浏览器中(但很可能是它的孪生兄弟,官方Chrome浏览器,以及我们在“智能”手机上遇到的具有积极缓存趋势的其他浏览器)。
细节:
At first I tried some of the fairly simple solutions shared here, but without success (for example clearing the recent history of the specific site, but not months and months of it). My latest CSS would however not be applied apon refresh. And that even though I had already employed the version-number-trick in the CSS file-call in the head section of the html which had helped me avoid these pesky aggressive cachings in the past. (example: link rel="stylesheet" href="style.css?v=001" where you upgrade this pseudo-version number every time you make a change to a CSS file, e.g. 001, 002, 003, 004... (should be done in every html file of the site))
这一次(2019年8月)CSS文件版本号更新不再足够,这里提到的一些更简单的措施对我也不起作用,或者我甚至无法访问其中的一些(在借来的安卓手机上)。
最后,我尝试了一些相对简单的方法,最终解决了这个问题:
我复制了站点的index.html文件,给它一个不同的名字(indexcopy.html),上传它,在Android设备上浏览它,然后浏览回原始页面,刷新它(用地址栏左边的刷新按钮),voilà:这一次,index.html的刷新终于起作用了。
Explanation: The latest CSS file version was now finally applied on Android when refreshing the html page in question because the cached copy of the CSS file had now been updated when the CSS file was called from a differently named temporary html page that did not exist anywhere in the browser history and that I could delete again afterwards. The aggressive caching apparently ignored the CSS URL and went instead by the HTML URL, even though it was the CSS file that needed to be updated in the cache.
如果只是包含文件的问题,只需在路径后添加version (?v=12345678)
<link rel="stylesheet" type="text/css" href="style.css?v=12345678" />
无论谁再次加载页面都将看到更改。
像Ctrl+Shift+R这样的快捷键在Android上也适用,你只需要一个能够发送这些键的键盘。我用的是黑客键盘 发送Ctrl+Shift+R,这在我的手机上很难重新加载。
大多数答案对我都不起作用。 以下是2020年8月我在Galaxy S8上的一个超级简单的工作:
在http:....之前添加“view-source:”地址,导航槽有改变的文件,如果不同于HTML或索引。
您将看到未更改的文件。刷新。
完成了。
我一直在为不刷新的CSS文件而挣扎。但是您可以在地址栏中输入CSS文件本身的名称并刷新它。之后就好了。Android 8上的Chrome。显然,如果涉及多个文件,这将是令人厌烦的。
为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();
启动Chrome Android应用程序 点击菜单查看更多选项。 从选项列表中选择“设置”。 向下滚动并点击“站点设置”选项卡。 在“站点设置”中打开“数据存储”选项卡。 点击要删除存储的站点URL。 点击“清除&重置”命令按钮。 刷新网站页面。