iOS开发中 少不了许多和h5交互的界面,所以少不了 h5的哥们说,我这里没有缓存了,我本地浏览器也是最新界面。为什么App上就是不刷新。恰好,领导用的也是iOS,这时候,就尴尬了。
前段时间,老板频繁变更需求,本来一个好好的H5静态界面,改来改去,好几次改完,页面都没有刷新。研究了许久才发现,iOS WKWebview默认会缓存H5的主链接。那好吧,主链接加上V=1.0。事情终于告一段落。。。
然而,并没有那么简单。老板心血来潮,让改静态页面图片,完蛋了。v从1.0 改到3.0 ,然并卵,界面依然是老的。怎么办!!!面对同事怀疑的目光,继续探索
网上关于这块的回答很少,App缓存H5页面原理介绍更少,大都是怎么使用,怎么用API。(大概国内开发环境就是如此吧😢)。终于在一片贴子找到症结所在。
iOS WK缓存h5,会对CSS文件、H5文件、图片文件、JSON文件都有可能缓存,主链接加V只是更新了H5文件,并没有更新其他图片、CSS文件。SO,赶紧让大前端同事,改了图片名,好了。。。吐血
所以,总结下解决方案:
1、主链接加版本号,V = 1.0 2.0 3.0 h5每更改一次 其实就是一个小版本,这样就避免主链接H5 的缓存
2、《img src="./data/avatar_mingpian_bak.jpg?rand=h9xqeI" width="156" height="98"》 图片、CSS文件 更改,图片加随机数或版本号
3、<script language="javascript" src="UILib/Common/Common.js?time=new Date()"> JS文件可加时间戳 或版本号等等。
另附上两篇大神关于H5缓存和App缓存的链接
接着前面的说,前段时间又出了事。明明H5那边兄弟说他加版本号了。。。可是我怎么断点调试,链接都没变。当时俩人面红耳赤的,心里那个mmp啊。没办法,我再继续解决吧,谁让我有不解决心里就是接受不了呢。最后,想起来是不是服务器缓存没清。。。找到运维的哥们儿,清了下CDN缓存,再刷新,竟然好了,擦啊!
这些事儿,总算告一段落,佛祖保佑啊,后续不要出问题,阿弥陀佛。。
网友评论