过去几年我注意到,现在很多网站每次你按下按钮返回页面时都会刷新整个页面Back。这非常烦人,尤其是在蜂窝或较慢的互联网连接上。
浏览器扩展程序是否可以阻止按下时触发此页面重新加载Back?
注意:我不是谈论的是浏览器或操作系统由于内存压力而强制进行的重新加载。这是一种主动重新加载,网站本身在检测到页面已变为活动状态或再次获得焦点时触发。
最严重的违法者是Reddit。如果您单击某个主题以阅读评论,然后按Back,则会出现 5 秒的延迟,因为主题列表会重新加载,所有投票都会重新计算,所有评论都会统计等等。我不希望发生任何这些情况,我只想快速返回到我之前查看过的主题列表。
在各种网站上测试自己。点击主题/评论,然后按Back。
Hacker News 和 Stack Exchange 都相当快。无需重新加载。无需重新计算。只显示上一个主题列表。
Reddit 速度非常慢,每次按下 时都会强制重新加载整个页面Back。其他网站也有这种情况。
我正在寻找一个适用于 Safari 或 Chrome 的浏览器扩展程序,它可以在所有网站上阻止此类页面重新加载。网站使用什么机制来触发重新加载/刷新,如何拦截和阻止它?
答案1
Reddit 的 HTML 页面的 HTTP 响应标头如下所示,
accept-ranges: bytes
cache-control: private, s-maxage=0, max-age=0, must-revalidate, no-store
因此,该网站通过 max-age 标志要求浏览器不要缓存该页面。
但是对于页面的某些元素,例如 Javascript 文件,它们确实请求缓存(7 天,即 604800 秒)。
accept-ranges: bytes
cache-control: max-age=604800
因此,大部分内容都应该被缓存。也许你的手机或互联网连接很慢?