2024年前端最新微信小程序webview缓存处理,完爆面试官

总结

根据路线图上的重点去进行有针对性的学习,在学习过程中,学会写笔记,做总结。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

这里分享一些前端学习笔记:

  • html5 / css3 学习笔记

  • JavaScript 学习笔记

  • Vue 学习笔记

  • 手动退出小程序,再次进入;

  • 将微信从后台退出再打开并重新进入小程序;

  • 修改 Nginx 关于 Cache-Control 的配置;

  • 用 debugx5.qq.com 手动清除安卓微信浏览器缓存;

  • iOS 利用微信自带清楚缓存功能。

无法及时刷新缓存会导致发布了最新的页面,而小程序里仍然是以前的页面,从而会带来许多问题,如前后端的数据不一致,新的特性无法及时起作用,修改的问题没有得到解决等等。这里需要说明一下:web-view 在过一段时间(时间不定,一天或者几小时,无明显规律)是可以进行缓存刷新的,而本 Chat 要解决的是及时刷新的问题。

解决问题

解决思路

浏览器访问资源是通过 URL 地址,如果内嵌 H5 的地址不发生变化,那么 web-view 访问资源会从缓存里取,而缓存里并没有最新的数据,这就导致了服务端的最新资源根本无法到达浏览器,这也就解释了为什么修改 Nginx 的 Cache-Control 配置也无法生效的原因。所以,要想彻底解决及时刷新,必须让 web-view 去访问新的地址。我们假定小程序访问的 URL 地址为:

https://www.yourdomain.com/101/#/index

其中 101 就是构建的一个版本号,每次递增,保证次次不同即可。

小程序获取最新版本号

在小程序中,我们利用 app 的 onShow 钩子函数 [1] 来完成最新的 URL 获取,同时还要保证只有获取了版本号之后才能加载其他的页面,因此这里要用到同步接口调用 [2]。请参考下面代码:

//这里加入同步请求到服务器获取最新路径

onShow: function (options) {

this.getFEVersion()

},

getFEVersion: function () {

//下面是利用Promise进行同步调用的写法

return new Promise(function (resolve, reject) {

wx.request({

//下面是本机调试的一个地址,上线时请改成自己服务端的地址

url: ‘http://192.168.0.168:8090/getFEVersion’,

data: {},

method: ‘POST’,

header: {

‘content-type’: ‘application/json’,

},

success: function (res) {

if (res.data.success) {

const app = getApp();

//res.data.version 是从服务端返回的最新fe的版本号,即上面的数字101

app.globalData.feUrl = ‘https://www.yourdomain.com/’ + res.data.version + ‘/#/index’

}

resolve();

},

fail: function (error) {

console.log(error);

reject();

}

})

});

},

Nginx 配置

Nginx 正则规则,~ 表示区分大小写的正则匹配,\d 是数字的匹配的正则表达式,正好可以匹配 101 这样的数字表达式。

最后更多分享:前端字节跳动真题解析

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

更多分享:前端字节跳动真题解析

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

  • [外链图片转存中…(img-rJxVEcBm-1715027044799)]
  • 15
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值