为什么要做?
浏览器为了加快速度,默认会把看过的页面存起来。当用户点“后退”按钮时,浏览器很可能直接显示那个旧页面。对于订单、余额、个人信息这类实时变动的页面,用户看到旧内容会出问题。
怎么做?按推荐程度排序
1.设置服务器响应头(最可靠)
在服务器返回页面时,主动加上“禁止缓存”的指令,比如要求浏览器不要存储本页面、每次都必须重新向服务器请求。这是最稳定的方案,因为服务器端控制权最高,所有浏览器都会遵守。
2.网页头部加声明(辅助手段)
在网页源代码的头部区域加入禁止缓存的声明。缺点是部分老浏览器或网络代理可能忽略它,只能作为补充,不能单独依赖。
3.让每次页面地址不同
在跳转链接或刷新页面时,给网址后面追加一个变化的内容,比如当前时间或随机数字。浏览器看到地址变了,就会当作新页面去请求,而不是读缓存。
4.改用表单提交方式
浏览器默认不会缓存通过表单提交后的响应页面。因此对于重要操作的结果页,可以用这种方式来避免后退时出现旧内容。但这会改变用户的正常点击行为,只适合特定场景。
5.额外的前端补救办法
可以在页面加载时做一个检测:如果发现当前页面是从缓存里读取出来的(而不是从服务器新获得的),就自动重新向服务器请求一遍。这个方法纯靠浏览器本身的行为判断,可以作为最后的保险。
注意两点
性能影响:完全不让缓存,意味着每次后退或访问都要重新下载全部内容(图片、样式等),会变慢、增加服务器压力。只对真正需要实时数据的页面这样做。
最推荐的做法:在服务器上配置缓存控制头,这是最根本、最可靠的方案。网页里的声明只是辅助,不能完全信任。
建站咨询
SEO优化咨询
小程序咨询