美文网首页Java web
解决微信APP内置浏览器打开web页面是缓存页面的问题

解决微信APP内置浏览器打开web页面是缓存页面的问题

作者: CoderZb | 来源:发表于2020-04-16 13:46 被阅读0次

    首先说明一下,我们公司是基于vue开发的 运行在手机上的web项目。
    以下描述中,界面A和界面B都是同一个界面(链接都是https://www.feiyang.life/#/rewardDetail?drawId=25&inviteUserId=11,以下用链接C表示),只是为了后面的描述,更加好区分而已。有bug的界面是界面A,界面A改完bug之后的界面称之为界面B。

    问题描述:

    链接C在早晨8点之前打开过,然后8点发现一大个bug,改掉之后上传代码到服务器上。早晨8-10点,在微信APP内打开链接C的时候,显示的是界面A。
    有意思的是,在电脑的浏览器上调成手机模式或者在微信开发者工具上打开链接C,显示的是界面B。
    更有意思的是,将链接C改为https://www.feiyang.life/#/rewardDetail?drawId=25&inviteUserId=12(这个链接上个月之前在微信app内置的浏览器上打开过),运行在微信APP内置的浏览器上的时候,发现显示的是界面B。这两个链接只有一个参数的值是不一样的。但是在早晨10点之后,该问题就不会再出现了。所以,个人认为很大的可能是微信APP内置的浏览器的缓存策略在搞鬼。


    猜测原因:微信的在不同的时间采用不同的缓存策略来显示页面。

    • 早晨0-8点,多次访问链接C,只对第一次访问做缓存处理(例如,凌晨4点访问了1次);第二次、第三次....访问时,都显示的第一次缓存的界面。因此凌晨4点后-8点前,你如果对该页面新增了一些log或者多加了一些标签或者修改了页面中的某些内容,那么这些你修改的这些内容都不会显示出来,而是显示的是凌晨4点存入缓存的界面。
      除非你手动刷新一下或者等缓存时间过了再访问。早晨10点之后,就不是之前的那种缓存策略了,而是每次打开都是最新的页面,显示的不是缓存界面,此时,你如果对该页面新增了一些log或者多加了一些标签或者修改了页面中的某些内容,那么这些你修改的这些内容都会显示出来。但是我们需要这么被动吗?不需要的。

    解决办法:

    • 链接中增加随机数参数,保证每次访问的url都是不一样的,这样微信就不会把之前的缓存界面拿过来显示了。
      之前的链接:https://www.feiyang.life/#/rewardDetail?drawId=25&inviteUserId=11
      现在改为https://www.feiyang.life/#/rewardDetail?drawId=25&random=0.23109808943312116&inviteUserId=11

    --------如有问题,还请大家批评指正

    相关文章

      网友评论

        本文标题:解决微信APP内置浏览器打开web页面是缓存页面的问题

        本文链接:https://www.haomeiwen.com/subject/fsxrvhtx.html