如何在没有菜单按钮的设备上使用Chrome(类似于Ctrl + F5)刷新网页?


16

我有一台具有4.2.2和Chrome浏览器的Nexus 7 Android设备。

如何执行网页的深度刷新-类似于Ctrl+F5台式机上的热键?

请注意,该设备没有菜单按钮。

根据我在这里找到的唯一相关问题,解决方案是完全清除浏览器缓存。我希望有更方便,更优雅的解决方案。


2
菜单按钮(或缺少菜单按钮)如何关联?
eldarerathis

@eldarerathis,我在网上看到一些帖子,建议在按住菜单键的同时按“刷新”工具按钮。
Stan

啊,有趣。我以前没听过
eldarerathis

1
这个问题在StackOverflow上有更好的答案(这表明社区过度分裂无济于事; Android与编程非常接近,因此不值得为之单独创建一个站点;化学与数学相对应-肯定。)
Dan Dascalescu '02

Answers:


-2

绕过每个站点缓存:

这需要在地址栏中运行一个简单的javascript代码,以绕过缓存并从服务器而不是浏览器缓存中获取内容。根据有关强制从服务器重新加载当前页面的MDN页面

javascript:location.reload(true)

在浏览器地址栏中输入上述代码,然后按Enter键。这将从服务器获取所有内容,而不是选择浏览器中缓存的元素(因此绕过浏览器缓存)。

绕过所有网站的缓存数据(全局缓存)

上面的javascript仅适用于您当前打开的特定网站。要清除所有网站缓存,请使用全局浏览器缓存数据。你在下面找到这个

Settings > Privacy > CLEAR BROWSING DATA

选中“缓存”复选框(如果需要,还可以选择其他选项,例如浏览器数据,Cookie,密码等),然后选择“清除”。

注意: 虽然Ctrl+ F5会导致浏览器丢弃缓存并向服务器请求新内容,但服务器可能会忽略no-cache标头并提供服务器端缓存的页面。因此,如果服务器忽略无高速缓存头,则甚至Ctrl+都F5可能返回该页面的旧版本。

隐身模式:

通过隐身模式浏览会禁用历史记录和缓存。因此,您可以通过隐身模式访问任何站点,以每次都请求新内容。


有关Ctrl+ F5或强制刷新的作用的更有趣的讨论,

阅读这篇SO帖子,浏览器的“ F5”和“ Ctrl + F5”刷新会产生什么请求?



1
即使清除了浏览数据,也没有发生深度刷新。我不得不杀死并重新启动 Android手机中的Chrome,以迫使其从缓存中获取。(事后考虑,即使您清除了磁盘上的缓存(大概是这样),内存中的缓存仍然存在。杀死Chrome也会擦除内存缓存。)[PS:“磁盘”是指永久的非磁盘易失性存储,也称为闪存。]
ADTC

3

在使用Chrome浏览的三星平板电脑上,在地址栏中输入以下内容:

javascript:location.reload(true)

那应该触发使用Javascript的硬重装。现在,我不必等待几天来观察我所做的代码更改的结果。一个新的问题是,在平板电脑上打字不是我最喜欢的事情。

除了输入上面的命令外,我还尝试更改为桌面模式,然后再返回。那没有深深的刷新。


2

我没有任何这些解决方案可以工作。但是我找到了一个可行的解决方案。

首先,找出CSS网址。就我而言,它看起来像这样:

/min/assets/css/style.min.css

在地址字段中写入它,但还要向其中添加一个GET变量:

/min/assets/css/style.min.css?hello

希望可以接受GET变量。因为这是一个新的URL,所以它会强制CSS重新加载。现在返回该站点,css应该已经重新加载。


2

我找到了 !!!!!!

URL的左侧有一个信息图标(i)或一个锁定图标。单击图标,然后单击[网站配置]。

您会发现一个垃圾桶图标以清除当前站点的缓存,或者单击“还原首选项”按钮。

使用Android Chrome 71。


1
Chrome版本73.0.3683.90无法在我的S9 +上运行。在我控制的页面上,我至少点击了15次“清除并重置”选项(所以我知道代码的效果很好)。但是,我正在加载的页面上运行的JS仍然是旧版本。
东南再次罢工不幸的是,

1
好吧,它可以完美地在我的S9上正常工作,所以我想您的情况有些特殊!您能进一步讨价还价吗?
JCM

现在,我已经在两种不同的设备上进行了尝试,一种使用开发人员模式(因为我是开发人员,所以使用了我的手机),另一种使用了朋友的。同样,我也尝试过平板电脑。不去那里+。同样,我什至在使用Chrome的公司iPhone上进行了尝试,并且存在相同的问题。因此,从我的角度来看,您似乎很幸运,比我似乎拥有多个有缺陷的设备更容易使用。
东南再次罢工不幸的是,

当然,真正的问题是Chrome / Android的时髦行为和过度攻击性的缓存。就像隐身模式不起作用一样(说......也无法正常工作...)
SE再次罢工不幸的是,

刚刚检查了一下iPhone的Chrome是否没有此选项,您就是这么说,因此我认为我们不是在谈论同一件事:而且,我的Android的Chrome中没有“清除并重置”功能。要对其进行三重检查,请在可以正常工作的小米A1上测试我的建议(注意,它以KB为单位显示页面的本地缓存大小)。可能是您需要关闭标签页(或尝试杀死Chrome)。否则,我想知道一个特定站点的“垃圾箱按钮”应该做什么...?
JCM

1

我只是找到更优雅的解决方案。在网页菜单中询问网站的桌面版本。它将从服务器中提取数据,并将重新加载页面。之后,您可以再次返回移动版本。


1
并非所有网站都提供移动/桌面版本。
ale 2014年

1
Android上的当前版本的Chrome具有“请求桌面网站”选项。无论所有站点是否都满足该请求,在许多情况下它仍然是有效的选择。与清除设置中的缓存相比,尝试并发现它不起作用要容易得多,而且速度更快。
菲利普·琼斯

1

我需要一种方法来通过javascript清除当前缓存或来自同一原始域的所有缓存,以便确保我的webapp的更新推出没有错误。

在临时更改html标头中的缓存元标记时,我也没有成功。

仅在台式机上,不能自动执行:

ctrl + R

用于强制重新加载以清除缓存。

现在你必须按

ctrl + shift + R
or
shift + F5

chrome似乎很难清除缓存。

他们可能这样做是为了欺骗浏览器速度基准测试。大众风格。

我编写了自己的变通方法forceReload()函数,该函数可在Windows Chrome,Android Chrome和Chrome上运行:

window.forceReload = function(){
    if( !window.fetch)return document.location.reload( true);
    var els = document.getElementsByTagName( "*");
    for( var i = 0; i < els.length; i++){
        var src = "";
        if( els[i].tagName == "A")continue;
        if( !src && els[i].src)src = els[i].getAttribute( "src");
        if( !src && els[i].href)src = els[i].getAttribute( "href");
        if( !src)continue;
        fetch( src, { cache: "reload"});
    }
    return document.location.reload( true);
};

此功能仅会重新加载当前页面上已加载的内容,您可以在服务器上有新更新后在每个客户端上触发一次,或者只需在应用程序上添加一个工作刷新按钮即可。


感谢您分享代码。提取似乎仍是实验性的API,那么可能还可以使用另一个实验性的Cache API。
斯坦(Stan)

-1

在页面上下拉以重新加载它,它集成到了智能手机的chrome中,以查看类似的更多技巧,请检查链接,在这里我找到了解决您问题的方法


1
虽然此功能是最近添加到Chrome浏览器中的(上述版本41),但在较早的版本中将不可用。因此,此功能可能有效,也可能无效。更重要的是,这只是以正常方式重新加载页面,但OP要求进行硬刷新。
幸运

未指定所需的解决方案是否在android或编码的观点下
fsalazar_sch 2015年

1
无法理解您的意思。但是这个答案并不能使我为解决OP的问题提供解决方案。
幸运

从字面上看,这个“答案”只是告诉人们您可以通过下拉页面来执行定期刷新。OP的问题是关于在PC上执行“硬刷新”(相当于CTRL + F5)。
BORT

-3

您要访问的网址窗口的左侧是一个几乎圆形的箭头。


1
我不相信这会像Stan所要求的那样进行深层次的刷新。
dotVezz 2013年
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.