一个类似的解决办法,加一个 BFF 层,将所有接口汇总为两个接口:
1 、/api/config/update
2 、/api/config/list
app 在打包时,自动从 /api/config/list 拉到最新的全量的配置,并返回一个 hashId 来标识这次结果,这样用户打开 app 所有功能都是可用的。
然后 app 定期轮询 /api/config/update?id=$hashId ,如果有变更,就返回 true ,然后 app 端异步更新 diff 数据(复杂点就设计一套 add 、update 、delete 的语法,简单点就全量再拉一遍),如果无变更,就返回 false 。
这样针对相同的 hashId 还可以做 cache ,对后端的压力比较小 |