[讨论一个开源的想法] 针对 web 端,想做一个有交互的升级

2023-06-14 16:10:05 +08:00
 godleon

场景

简单的来说就是实现 web 端可以做到类似 app 的在线升级,实现在线更新 web 项目;

问题

1.目前有没有类似的开源? 如果有就不准备做了,可以二开或者直接使用
2.有没有实现的可能
3.有没有意义,其实我单纯的出发点就是感觉比较酷炫,不用停止站点,做到在线更新,不更新可以继续使用老版本。
4.纠结的点在 如果做出来会不会在部署的工作量上要远大于打包直接扔到现网环境;但是各有利弊吧

PS

只是一个想法的雏形,具体是否落实还需考察

1628 次点击
所在节点    程序员
12 条回复
AuYuHui
2023-06-14 16:19:08 +08:00
没有意义
retrocode
2023-06-14 16:27:10 +08:00
localstorage 内存个 hash, 页面所有资源改为动态获取用 hash 取, hash 不变版本不升级.
或者基于版本号部署路径, 用户需登录, 后自动跳转对应版本.

不过我赞同楼上, 没有意义, 这属于自己给自己上难度.
zongren
2023-06-14 16:30:08 +08:00
h5 应用商店?几年前挺火。
llmice
2023-06-14 16:32:03 +08:00
web 端什么情况下要做到热更新?
Rever4433
2023-06-14 16:34:43 +08:00
其实我觉得你可以做个伪页面,当 web 服务更新的时候,弹出一个"升级"的安装过程。但实际上只是等待新项目部署的一个遮罩。
Finnn
2023-06-14 16:37:40 +08:00
不知道之前不少技术文档网站有个更新检测吗, 有更新就提示你刷新, 然鹅实用性很差, 导致很多都不用了, 例子: Vue 系列官网(已经干掉好久了
zgcwkj
2023-06-14 16:44:08 +08:00
pwa?
godleon
2023-06-14 16:44:43 +08:00
@Rever4433 这个想法可以的,比如最新版的 UI 可以先录个演示过程,然后放到升级等待窗口里搞个动画播放;
LeegoYih
2023-06-14 16:44:58 +08:00
灰度
duke807
2023-06-14 16:49:29 +08:00
看下我这个加密工具,同时是一个 pwa 模板: https://github.com/dukelec/cde
riceball
2023-06-14 19:45:15 +08:00
是 web 端么? 如果只是浏览器访问,那么必然就 PWA 了,关于 PWA 可以使用资源的预缓存机制,google 提供的 Workbox 工具箱简化使用.

如果是跨平台的 JS 应用,那么要看你用的是啥了,react native? cordova? capacitor? flutter? 基本上都有热更新, 微软贡献的开源项目 code-push 不错

1. https://github.com/microsoft/react-native-code-push
2. https://github.com/microsoft/cordova-plugin-code-push
3. https://github.com/mapiacompany/capacitor-codepush
xiaotuzi
2023-06-15 10:43:52 +08:00
如果是 web 端,只要你访问一个页面,那么这个页面的所有内容将被浏览器缓存,那下一个页面就可能需要更新,更新的前提可能就是跳转链接。

目前我服务器使用的前端需要 vue 打包,热更新的逻辑就是打包好文件(dist),然后将 dist 覆盖 produce 文件夹,这个过程很快,服务器一般转移覆盖文件也就几秒,如果文件不多的话。影响也是很小的。
实际上,前台 web 入口页面也就只有一个,换了 index.html ,那就是新版本了。

影响:一般需要重新加载 js image 这些静态资源,这里比较卡,比较慢。

基本热更新是比较难实现的,除非有个动态资源请求检查更新,然后在当前页面写入新版本的资源加载。那么跳转下一个页面更新的时候,本地已经加载了这些资源,所以就可以解决这个加载资源慢的问题。

综上,交互升级不是特别重要,只要闲事发版即可,但无论什么时候,都解决不了浏览器首次加载资源慢的问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/948716

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX