
Google Chrome 83.0.4103.116 (正式版本) ( 64 位)
举个例子:从主页前往签到页面并签到,页面显示签到成功,但按下返回键回到主页后,签到信息不会更新。
消息提示功能也有类似的问题
复现:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): doc = """<h1>{} times</h1> <ul> <li><a href="/uncache1"> cache-control: no-cache, no-store</a></li> <li><a href="/uncache2"> cache-control: max-age=0</a></li> <li><a href="/log">log</a></li> </ul>""" return doc.format(str(time)) @app.route('/log') def logger(): global time doc = """<h1>{} times</h1> <h2>Please turn back</h2>""" time += 1 return doc.format(time) @app.route('/uncache1') def uncache1(): doc = """<h1>{} times</h1> <ul> <li><a href="/">cache-control: unset</a></li> <li><a href="/log">log</a></li> </ul>""" return doc.format(str(time)), [("cache-control", "no-cache, no-store")] @app.route('/uncache2') def uncache2(): doc = """<h1>{} times</h1> <ul> <li><a href="/">cache-control: unset</a></li> <li><a href="/log">log</a></li> </ul>""" return doc.format(str(time)), [("cache-control", "max-age=0")] if __name__ == '__main__': time = 0 app.run(port=80,host="0.0.0.0") 2 Girlphobia 2020-07-21 21:13:28 +08:00 via Android @Leon6868 根据 HTML Living Standard,浏览器会保存页面的 browsing context 与 session history,在访问历史的时候会读取之前页面的状态,与 HTTP 缓存无关。 如果这是一个需要解决的问题,做法应该是页面检测到返回时刷新,或者对签到之类的信息使用一个单独的前端模块发送 XHR 请求,并且在前端更新。 |
3 wxsm 2020-07-21 21:15:22 +08:00 via iPhone 问这个问题说明你并不理解浏览器是如何缓存的。建议自己先弄明白再 at 别人。 |
4 Licsber 2020-07-21 21:32:06 +08:00 "但按下返回键回到主页后" 好了 本帖不用看了 推荐 lz 一个解决方案:下次按下左上角“V2EX”logo 返回 缺点嘛 就是会多一些网络请求 但是既然你认为不更新是 bug 的话 那就多一次呗 |
5 jugelizi 2020-07-21 21:33:40 +08:00 via iPhone 手动问号 你真的理解浏览器的行为? |
6 arischow 2020-07-21 21:34:50 +08:00 via iPhone 你吓到我了 |
7 Leon6868 OP |
9 mercury233 2020-07-21 22:08:51 +08:00 后退就要重新载入才是真的不人性化吧 |
10 Leon6868 OP @mercury233 设置里再添加一个开关(手动滑稽) |
11 Licsber 2020-07-22 00:48:53 +08:00 @Leon6868 #8 @mercury233 #9 同意 9 楼观点 如果一个网页连后退也要刷新的话 假设你网络状态不好怎么办 其次 给服务器( CDN 多带来多少压力 另外 常见的使用场景 难道不是主页点着 从上点灰到下 刷完一遍之后刷新主页重新把亮的点灰么( 假设这个主页是无缓存的 你会丢失浏览状态 并且 一个强制实时更新的主页更加不容易寻找内容 |
12 autoxbc 2020-07-22 11:44:43 +08:00 其实大家都是用脚本签到的 油猴写的半自动方案,访问主页时后台签到,仅仅免去点击,也不算违规 |