简单的来说就是实现 web 端可以做到类似 app 的在线升级,实现在线更新 web 项目;
1.目前有没有类似的开源? 如果有就不准备做了,可以二开或者直接使用
2.有没有实现的可能
3.有没有意义,其实我单纯的出发点就是感觉比较酷炫,不用停止站点,做到在线更新,不更新可以继续使用老版本。
4.纠结的点在 如果做出来会不会在部署的工作量上要远大于打包直接扔到现网环境;但是各有利弊吧
只是一个想法的雏形,具体是否落实还需考察
1
AuYuHui 2023-06-14 16:19:08 +08:00
没有意义
|
2
retrocode 2023-06-14 16:27:10 +08:00
localstorage 内存个 hash, 页面所有资源改为动态获取用 hash 取, hash 不变版本不升级.
或者基于版本号部署路径, 用户需登录, 后自动跳转对应版本. 不过我赞同楼上, 没有意义, 这属于自己给自己上难度. |
3
zongren 2023-06-14 16:30:08 +08:00
h5 应用商店?几年前挺火。
|
4
llmice 2023-06-14 16:32:03 +08:00
web 端什么情况下要做到热更新?
|
5
Rever4433 2023-06-14 16:34:43 +08:00
其实我觉得你可以做个伪页面,当 web 服务更新的时候,弹出一个"升级"的安装过程。但实际上只是等待新项目部署的一个遮罩。
|
6
Finnn 2023-06-14 16:37:40 +08:00
不知道之前不少技术文档网站有个更新检测吗, 有更新就提示你刷新, 然鹅实用性很差, 导致很多都不用了, 例子: Vue 系列官网(已经干掉好久了
|
7
zgcwkj 2023-06-14 16:44:08 +08:00
pwa?
|
9
LeegoYih 2023-06-14 16:44:58 +08:00
灰度
|
10
duke807 2023-06-14 16:49:29 +08:00
看下我这个加密工具,同时是一个 pwa 模板: https://github.com/dukelec/cde
|
11
riceball 2023-06-14 19:45:15 +08:00 1
是 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 |
12
xiaotuzi 2023-06-15 10:43:52 +08:00
如果是 web 端,只要你访问一个页面,那么这个页面的所有内容将被浏览器缓存,那下一个页面就可能需要更新,更新的前提可能就是跳转链接。
目前我服务器使用的前端需要 vue 打包,热更新的逻辑就是打包好文件(dist),然后将 dist 覆盖 produce 文件夹,这个过程很快,服务器一般转移覆盖文件也就几秒,如果文件不多的话。影响也是很小的。 实际上,前台 web 入口页面也就只有一个,换了 index.html ,那就是新版本了。 影响:一般需要重新加载 js image 这些静态资源,这里比较卡,比较慢。 基本热更新是比较难实现的,除非有个动态资源请求检查更新,然后在当前页面写入新版本的资源加载。那么跳转下一个页面更新的时候,本地已经加载了这些资源,所以就可以解决这个加载资源慢的问题。 综上,交互升级不是特别重要,只要闲事发版即可,但无论什么时候,都解决不了浏览器首次加载资源慢的问题。 |