当用微信小程序的web-view内嵌H5页面的时候,H5页面的内容发生改变,H5更新了,但是小程序里的H5页面并没有更新,这是由于浏览器缓存问题,有时候即使点击清除全部缓存依然无法刷新页面。
web-view 在过一段时间(时间不定,一天或者几小时,无明显规律)是可以进行缓存刷新的,而当下要解决的是及时刷新的问题。
浏览器访问资源是通过 URL 地址,如果内嵌 H5 的地址不发生变化,那么 web-view 访问资源会从缓存里取,而缓存里并没有最新的数据。我们假定小程序访问的 URL 地址为:
可以在链接后面拼上一个random参数,随机生成0-100的整数:
let random = Math.round(Math.random() * 100)
http://www.baidu.com?random=random
这样就可以使浏览器每次打开都是新的网址,不再读取缓存,即时刷新内嵌的H5页面。
此外,当使用jweixin-1.4.0.js做分享的时候,link分享链接动态设置时存在不生效的问题,也可以拼接random参数解决这个问题。
感谢这篇博客提供的思路:
https://www.jianshu.com/p/59a490a77ce5
里面关于浏览器缓存机制描述的很清晰,可以认真看一下
网友评论