开发中容易被坑到的两种缓存机制

1. chrome浏览器缓存阻塞机制

举个例子:
当你开发完一套支持异步的后端服务后,使用chrome浏览器测试,会发现你的请求有的时候会是同步的,有的时候又是异步的。
原因:
chrome浏览器会利用浏览器缓存判断你的请求,当判断你同时请求了相同的资源时(相同url),会阻塞后面的请求,直到第一个请求完成(异步变成了同步)。
也就是说,即使你的后端服务支持异步并发,你在测试的时候可能会发现相同的请求还是同步的。
解决方案:
F12打开开发人员选项,勾选【disable cache】即可。

2. 服务端文件缓存机制

举个例子:
你下载了一个文件,然后服务端更新了文件的版本(修改了文件),然后你重新下载,发现下载的文件内容和之前是一样的,内容没有变。经过多次测试,每过一段时间或者首次更换其它浏览器,就能下载到最新版本的文件。
原因:
后端服务像Django、Odoo等后端框架都会缓存客户端的请求,然后每过一段时间清除。在清除之前,你短时间内使用同一个的客户端(浏览器)对同一个文件下载地址做了请求,后端服务会直接返回之前缓存的文件,而不是重新读取文件再发送给你。
解决方案:
比如原下载连接为http://xxx:8080/opt/temp/test.docx,
那么将下载链接改为http://xxx:8080/opt/temp/test.docx?timestamp=1634397819&id=3即可。也就是通过时间戳和用户id保证了下载链接的唯一性,这样下载就不会有问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值