我是个前端工程师,目前的工作是做一款基于即时通迅的协同办公软件。说是软件,也只是用迅雷框体封装起来的网站。
在每次的版本更新时,都会出现资源文件加载混乱。没错的,这都是缓存的问题,有经验的都会尝试着按ctrl+F5进行刷新;但是这说到底对于用户来讲是一个功能BUG。在前几天抽烟时想到了一个解决办法,现在拿出来与大家进行分享。
对于此类伪C/S结构的产品,有一个值是会随着版本去变化,并且永远不可能重复的。没错的就是版本号,经过与PHP开发人员协商,将版本号定义于config文件中。每次版本更新,只需将config文件中的版本号与真实版本号同步就会彻底解决缓存问题。
原理其实也很简单,访问一个资源文件,如果之前有过访问记录则会使用缓存中的记录而不去再次请求服务器。这种解决方法网上经过大量实践的处理方法就是追加随机参数,我在产品访问资源链接中的追加的就是一个类似的随机参数,只不过这个随机参每一个版本只会变化一次,毕竟缓存的好处显而易见。
附一组firefox网络监控对比效果图:
1. 在已经访问过该地址时
2.在更改版本号之后
个人试出来的,如果有缺陷。请勿喷,谢谢。
相关推荐
动态页缓存插件解决动态页反复查询数据库对服务器造成压力的问题。第一次访问时会生成一个静态缓存文件,第二次访问若在缓存有效时间内,则读取静态缓存文件。本插件理论上可以用于所有动态页面的缓存。每个动态页...
redis缓存雪崩,redis缓存穿透,redis缓存击穿 redis应对高并发造成的雪崩、穿透、击穿
现网中经常遇到因流量突发而导致队列满丢包的情况,此文档旨在告知用户如何在此 情况下查询和修改队列缓存深度,以解决在流量突发场景下因队列缓存不够而造成的 丢包问题。
应用于java开发 在使用redis缓存时 由于多线程问题造成数据同步延迟 解决redis缓存穿透问题
FancyCache还具有检测和利用系统未识别内存的功能,解决32位Windows操作系统无法完全使用4G或更多内存的问题。通过将检测到的系统未识别内存用作硬盘缓存的方式,FancyCache使计算机可以利用全部安装的内存。 基本...
云端缓存垃圾清理脚本(HTA界面版)有全新的2.0界面,是一个HTML Application脚本,解决了云端1.0beta2 0420/0421版本兼容性问题。 全新的图像界面版本 向导式操作 有强大的自定义功能 保留生成的脚本多次使用 请...
提出一种在网络备份系统(network backup system,NBS)中的海量缓存方法...海量缓存方法就是通过借助大量的辅存来解决这个问题,当本地数据中心监控到数据变化后,会先把数据变化放入辅存中,然后再发送到远程备份中心。
但是如果我们有很多地方业务都有用到缓存,我们就需要在每个地方都写关于缓存的代码,这样会造成很多重复代码,同时对业务侵入不利于后续的开发维护。 2、一般的解决办法是将缓存的功能提取出来,然后在需要用到缓存...
做一个项目用到Ajax,开始觉得挺好,后来发现一个问题,例如删除一项,恢复之后就不能再接着删除, 必须要等一段时间,后来知道是IE缓存的问题 AJAX缓存页面是一个刚接触AJAX的人一定会遇到的问题,造成这个问题的...
高性能电商秒杀解决方案 秒杀的特点 • 大量用户在秒杀时间点发起购买请求,造成网站流量瞬间激增; • 秒杀的商品一般库存较少,只有少数用户能够购买,要控制好库存,防止超卖; • 整个系统关键在于支撑短时间内...
缓存击穿:一个存在的key,在缓存过期的瞬间,同时有大量的请求过来,造成所有请求都去读dB,这些请求都会击穿到DB,造成瞬时DB请求量大、压力骤增。 singleflight 介绍 import "golang.org/x/sync/singleflight...
为了保证网络存储的负载平衡并避免在节点或磁盘故障的情况下造成不可恢复的损失,提出一种基于均衡数据放置策略的分布式网络存储编码缓存方案,针对大型高速缓存和小型缓存分别给出了不同的解决办法。首先,将Maddah...
总结一下解决办法: 在IE下用Ajax请求某一页面,通常会因为缓存的原因而返回上一次的结果,造成混乱,[即get方式时,获取数据,因发送参数和地址都一致,故IE浏览器会从缓存中取,而不会去请求服务器端,而post方式...
解决H+版本,由于加快写入速度,造成对3.3V芯片兼容的问题。 解决H+版本,对27芯片写入,容易失败的问题。 添加了更多芯片,使用更回方便。 重新更新了系统版本,省却版本设置的麻烦。 重新更新了界面,使用...
一直没在意这个问题,这次委托人一定要更换EXE文件的图标,本以为很容易,在设计环境给窗体 ico 赋值就可以啦! 最后才发现即使在IDE内运行时,图标已经换...我用以上简单方法解决了问题!现贡献大家,供同问题者参考!
2、线程池则完美的解决了这个问题,线程池的原理就是事先申请好指定数量的线程所使用的资源,而且这些资源是不断的重复利用的!可利用任务管理器看到程序的线程数量的变化(在使用普通的多线程时:线程数会根据软件...
因为是异步刷新,刷新逻辑无法得知缓存是否该被刷新,所以会把所有缓存都进行刷新,占用资源并且对缓存的存储造成一定的压力。 那么,有其他既能和业务代码完全隔离开,又能做到几乎无延迟的实时性的方案么? 项目...
图片过多造成内存溢出,这个是最不容易解决的,要想一些好的缓存策略,比如大图片使用LRU缓存策略或懒加载缓存策略。今天首先介绍一下本地缓存图片。 首先看一下异步加载缓存本地代码: 代码如下: publicclass...
3、列表上下滚动时多条线程重复下载同一张图片造成资源浪费问题的解决:同步监视器和tag配合使用。 4、图片缓存问题,使用内存缓存和SDCard缓存,优先查找一级缓存,其次查找二级缓存,均无时下载,下载完毕后...
我们通常使用 缓存 + 过期时间的策略来帮助我们加速接口的访问速度,减少了后端负载,同时保证功能的更新,一般情况下这种模式已经基本满足要求了。 但是有两个问题如果同时出现,可能就会对系统造成致命的危害: