怎样设置网站页面前进后退不会被缓存

2019-06-04乐易搜
测试的时候发现,如果在跳转后的页面,点击浏览器返回,还是会显示登录帐号列表。这时候登录是会失败的,因为已经登录过,没有了半登录态,应该需要重新扫码登录才行。所以列表页是
测试的时候发现,如果在跳转后的页面,点击浏览器返回,还是会显示登录帐号列表。这时候登录是会失败的,因为已经登录过,没有了半登录态,应该需要重新扫码登录才行。所以列表页是完全不能被缓存的,而浏览器的前进后退,默认会从缓存里读取,完全不发请求。  网站设计
打开Chrome的开发者工具调试的时候发现,如果勾选Network的Disable cache,浏览器后退的时候,结果页不会被缓存。如果不勾选则缓存页面。用户是不会主动开启这个选项的,所以需要通过Headers控制页面的缓存。  网站建设
勾选与不勾选Disable cache的差别在于Request Headers的Cache是否会被设置为Cache-Control: no-cache、Pragma: no-cache、Response  网站开发

有设置Cache为Cache-Control: no-cache, must-revalidate。但是为什么页面还是会缓存了呢?而Request为浏览器发送,不能进行设置,只能从Response着手。  网站建设公司
解决方案为设置Cache为Cache-Control: no-store, no-cache, must-revalidate,no-cache与no-store。“no-cache”表示必须先与服务器确认返回的响应是否发生了变化,然后才能使用该响应来满足后续对同一网址的请求。因此,如果存在合适的验证令牌 (ETag),no-cache 会发起往返通信来验证缓存的响应,但如果资源未发生变化,则可避免下载。  网站建设服务
相比之下,“no-store”则要简单得多。它直接禁止浏览器以及所有中间缓存存储任何版本的返回响应,例如,包含个人隐私数据或银行业务数据的响应。每次用户请求该资产时,都会向服务器发送请求,并下载完整的响应。再次观察页面的请求,发现虽然设置了no-cache,但是没有设置ETag可以进行校验,最终还是从缓存里读取。 深圳网站建设

----------------------------【版权声明】----------------------------

本站内容摘自网络,本站不拥有所有权,不承担相关法律责任。

如果发现本站有涉嫌抄袭的内容,欢迎举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

欢迎分享,转载请注明出处,谢谢合作。

技术支持
贴心服务
7x24小时服务TEL:400-888-3171