??????? 我是个前端工程师,目前的工作是做一款基于即时通迅的协同办公软件。说是软件,也只是用迅雷框体封装起来的网站。
??????? 在每次的版本更新时,都会出现资源文件加载混乱。没错的,这都是缓存的问题,有经验的都会尝试着按ctrl+F5进行刷新;但是这说到底对于用户来讲是一个功能BUG。在前几天抽烟时想到了一个解决办法,现在拿出来与大家进行分享。
??????? 对于此类伪C/S结构的产品,有一个值是会随着版本去变化,并且永远不可能重复的。没错的就是版本号,经过与PHP开发人员协商,将版本号定义于config文件中。每次版本更新,只需将config文件中的版本号与真实版本号同步就会彻底解决缓存问题。
?????? 原理其实也很简单,访问一个资源文件,如果之前有过访问记录则会使用缓存中的记录而不去再次请求服务器。这种解决方法网上经过大量实践的处理方法就是追加随机参数,我在产品访问资源链接中的追加的就是一个类似的随机参数,只不过这个随机参每一个版本只会变化一次,毕竟缓存的好处显而易见。
?
?
???? 附一组firefox网络监控对比效果图:
?
?
??? 1. 在已经访问过该地址时
?
?
?? 2.在更改版本号之后
?
???? 个人试出来的,如果有缺陷。请勿喷,谢谢。