问题:vue单页面应用在发布版本的情况下如何在客户不退出系统的情况下更新?
描述:这个测试老是碰到这样的问题,webpack在构建的时候,各种js因为name.[hash].js名称变化了,导致了原来的js不存在了,就报错。刷新后正常,如何让客户在不退出,而且不按F5刷新的情况下保证正常? 貌似name.[chunkhash].js也是一样。如果方案是说弄个定时器检查,就不用提了,不想用这种方案,有更好的方案吗?
问题:vue单页面应用在发布版本的情况下如何在客户不退出系统的情况下更新?
描述:这个测试老是碰到这样的问题,webpack在构建的时候,各种js因为name.[hash].js名称变化了,导致了原来的js不存在了,就报错。刷新后正常,如何让客户在不退出,而且不按F5刷新的情况下保证正常? 貌似name.[chunkhash].js也是一样。如果方案是说弄个定时器检查,就不用提了,不想用这种方案,有更好的方案吗?
9 回答1.7k 阅读✓ 已解决
6 回答944 阅读
3 回答1.3k 阅读✓ 已解决
4 回答1.6k 阅读
4 回答949 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答856 阅读
不刷新name.[hash].js就不会被下载,这个问题是无法解决的。弄个定时器查询然后刷新其实是可以的,不过你不喜欢,单页应用应该有后台推送机制,可能是ajax长轮询,或者websocket,利用后台推送的socket连接,可以判断后台是否已经重启,前端可以响应这些socket连接意外断开的事件,自动重试socket连接,连接上之后读取当前版本号,如果发现 已经升级,就刷新页面。