當(dāng)用微信小程序的web-view內(nèi)嵌H5頁面的時(shí)候,H5頁面的內(nèi)容發(fā)生改變,H5更新了,但是小程序里的H5頁面并沒有更新,這是由于瀏覽器緩存問題,有時(shí)候即使點(diǎn)擊清除全部緩存依然無法刷新頁面。
web-view 在過一段時(shí)間(時(shí)間不定,一天或者幾小時(shí),無明顯規(guī)律)是可以進(jìn)行緩存刷新的,而當(dāng)下要解決的是及時(shí)刷新的問題。
瀏覽器訪問資源是通過 URL 地址,如果內(nèi)嵌 H5 的地址不發(fā)生變化,那么 web-view 訪問資源會(huì)從緩存里取,而緩存里并沒有最新的數(shù)據(jù)。我們假定小程序訪問的 URL 地址為:
可以在鏈接后面拼上一個(gè)random參數(shù),隨機(jī)生成0-100的整數(shù):
let random = Math.round(Math.random() * 100)
http://www.baidu.com?random=random
這樣就可以使瀏覽器每次打開都是新的網(wǎng)址,不再讀取緩存,即時(shí)刷新內(nèi)嵌的H5頁面。
此外,當(dāng)使用jweixin-1.4.0.js做分享的時(shí)候,link分享鏈接動(dòng)態(tài)設(shè)置時(shí)存在不生效的問題,也可以拼接random參數(shù)解決這個(gè)問題。
感謝這篇博客提供的思路:
http://m.itdecent.cn/p/59a490a77ce5
里面關(guān)于瀏覽器緩存機(jī)制描述的很清晰,可以認(rèn)真看一下