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
其实大家都是用脚本签到的
油猴写的半自动方案,访问主页时后台签到,仅仅免去点击,也不算违规 |