当前位置:网站首页>浏览器禁止缓存讲解
浏览器禁止缓存讲解
2022-06-10 09:35:00 【流楚丶格念】
浏览器禁止缓存
1、什么是浏览器缓存?
浏览器缓存(Browser Caching)是为了节约网络的资源加速浏览,浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。
浏览器缓存主要有两类:缓存协商:Last-modified ,Etag 和彻底缓存:cache-control,Expires。
2、网站缓存有什么用?
在浏览网页过程中网站开发人员为了给用户带来更佳的浏览体验,使网站加载快速高效往往会在浏览器本地也就是设备上面存储缓存文件,因为网站或者web应用并不是实时大量内容的更新的,而是多数内容基本变化很小,因此在本地存储一部分文件,这样就不需要每次都重新加载全部的网站或者web应用信息,节省时间、流量,带来更佳的访问体验。
3、为什么要禁用浏览器缓存
在提升访问速度,节省流量的同时,保存缓存文件肯定会占据一定的设备存储空间,因此有些人在不需要追求时间流量的节省的时候,可以选择禁用浏览器缓存,这样浏览器不会在设备本地保存文件节省了存储空间。
场景:
部分项目在打包上线后,因为不希望有些html缓存。但html的文件名字不会发生改变,就不会重新进行加载,造成页面故障
解决方案:
1.使用js向url添加随机参数(注意:若为hash模式,则随机参数需要放置在 # 前)
但是这样做也有一个弊端,因为缓存可以减少对服务器的直接访问,减少服务器的压力。浏览器不读取缓存里的内容之后,每次都会访问服务器,这样就会增加服务器的压力。所以应根据情况使用。
if (!window.name) {
location.href += "?random=" + Date.now();
window.name = "reloaded";
}
2.在html的head中添加meta(浏览器仍希望缓存的话无效)
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />
3.后端设置get请求的response请求头
response.setDateHeader("Expries", -1);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
4.在浏览器中设置
F12打开控制台—>Network---->Disable cache 打钩
F12—>F1—>network ----> Disable cache(while DevTools is open) 打钩

5.更多工具选项 或 ctrl+shift+delete 或 ctrl+f5----> 清除浏览数据
总结:
想让浏览器有何种行为,服务端只能通过响应头的方式来设置
想让服务器知道何种行为,浏览器只能通过请求头的方式来设置
边栏推荐
- 必应(Bing)的站内搜索 site:<域名> <搜索内容>
- 互联网公司研发效能团队为啥必须独立?何时独立?
- pip install . And pip install -e Differences between
- request调用 get方法报错以及解决
- 分享|2022年中国供应链数字化升级行业研究报告(附PDF)
- printk学习之(一):基本原理
- Lambda表达式例一
- [dark horse morning post] ant group has no IPO plan yet; Weiya's husband set up a new live broadcasting company; CEO of Weibo questioned SF; JD will pilot the catering takeout business; Tencent's tale
- 本地浏览器访问远程服务器jupyter配置
- Printk learning part 3: are you still using printk?
猜你喜欢

对C语言指针强转的理解

No module named ‘pyautogui‘
![[fishing artifact] UI library second to second lowcode tool - list part (II) small tool for maintaining JSON](/img/14/f14d02363f527b794e8960011541f5.png)
[fishing artifact] UI library second to second lowcode tool - list part (II) small tool for maintaining JSON

某相机通信协议校验CRC程序

Inspiration de la transformation numérique d'Alibaba

solr高級查詢應用---按字段分組查詢

C language define variable parameter__ VA_ ARGS__ And__ VA_ ARGS__ Use of

阿里巴巴数字化转型的启示

想做钢铁侠?听说很多大佬都是用它入门的

工业数字化转型中的数据治理
随机推荐
01 backpack problem
【摸鱼神器】UI库秒变LowCode工具——列表篇(二)维护json的小工具
R语言使用coin包应用于连续变量独立性问题的置换检验(permutation tests)、在同一数据集上使用Wilcoxon秩和检验和和置换检验中的wilcox_test精确检验
#795 D Max GEQ Sum(单调栈+RMQ)
领导提拔你的原因,只有这点最真实,其他都是瞎扯!
pycocotools在线安装--【可用】
R 创建文件夹和子文件夹
想做钢铁侠?听说很多大佬都是用它入门的
四种最简单的防反接电路
No module named ‘pyautogui‘
How about the course system of PHP
powerdesigner物理数据模型导出的SQL文件,执行时报错?
谈谈数字化转型成功的10个启示
YOLOX: Exceeding YOLO Series in 2021
分享|数字孪生交通应用(附PDF)
R语言使用rpart包构建决策树模型、选择合适的树大小(复杂度)检查决策树对象的cptable内容(树的大小由分裂次数定义、预测误差)、使用plotcp函数可视化决策树复杂度参数与交叉验证错误的关系
Method of adding status bar in MFC window
PostMessage and SendMessage communicate across processes with different permissions
Stock issues - 121 The best time to buy and sell stocks
【CMAKE入门一】设置生成项目名称(project TEST)