小程序篇
背景:
在开发小程序的时候遇到本次发布的更新在用户的手机微信客户端上显示的还是老板本的项目,导致了用户不能使用,必须要在工作人员的引导下清除微信缓存货刷掉小程序的进程才能够正常使用.本来我们开发小程序的目的是为了让用户更快的使用我们产品减少对员工的依赖,但是此次遇到的缓存问题不能降低我们使用成本反而加大了工作人员的不便. 在过后根据讨论以及取经得出了一下几个解决方案.
1. 接口方案
如果是小程序项目接口,接口应当支持向下兼容, 这样能保证用户在有缓存的情况下还能正常使用
2. 前端开发方案
(1).引用微信小程序最新API 小程序版本强制更新 wx.getUpdateManager() 代码如下:
onLaunch: function () {
const updateManager = wx.getUpdateManager();
updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success: function (res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})
}
(2).配套使用 在小程序公众平台后台 更改基础库版本 最好升级到2.0.0 因为上面的接口是1.9.0版本以上才有的接口 升级了基础包 那么对应的效果为 用户如果微信版本过低 微信会提示用户更新微信才能使用

vue自动发布 cnd篇
背景
在我们开发完一个版本迭代之后会发布新的版本,但是用户浏览器缓存了当前这个页面那么会导致:1.用户白屏问题 这个问题较为严重 根据访问量的大小以及项目的定位可能会有S1,S2这种级别的bug 2. 用户能访问页面但是不能进行下一步操作
解决方案:
前端解决办法:1. 设置meta标签 让用户浏览器不去缓存当前页面每次刷新 都会请求最新的数据 风险:此方法会增加服务器的压力
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-
<meta http-equiv="X-UA-Compatible" content="IE=8">
-
<meta http-equiv="Expires" content="0">
-
<meta http-equiv="Pragma" content="no-cache">
-
<meta http-equiv="Cache-control" content="no-cache">
-
<meta http-equiv="Cache" content="no-cache">
解决服务器压力方案以上方法配套:
整个项目上cdn 让cdn去缓存前端资源,让用户直接去拉 cdn上的数据 风险: cdn不稳定的情况下可能导致某个地区不能访问 (运维给出方案 设置备用域名)
自动发布平台解决方案
让星云系统支持增量发布 好处 当用户缓存了当前页面 和页面缓存没有过期时候 用户会访问老的资源 如果有了增量发布那么用户还是可以访问老的资源 就不会出现白屏的问题
后台解决方案
检查nginx 是否有缓存 我们前端建议是不缓存

本文讨论了小程序和前端项目的缓存解决方案。对于小程序,提出了接口的向下兼容性和利用微信更新API强制更新的策略。对于Vue项目,介绍了设置Meta标签避免浏览器缓存以及使用CDN缓存前端资源的方法,同时提出了自动发布平台的增量发布解决方案以减少白屏问题。后台解决方案中强调了检查Nginx的缓存配置,以确保正确处理缓存策略。
4485

被折叠的 条评论
为什么被折叠?



