V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  karott7  ›  全部回复第 4 页 / 共 13 页
回复总数  247
1  2  3  4  5  6  7  8  9  10 ... 13  
2023-01-12 16:53:58 +08:00
回复了 bihui 创建的主题 程序员 请问现在写一个 pc、手机可用的威客网站 哪种技术路线最快?
nextjs + tailwindcss
2023-01-03 09:38:32 +08:00
回复了 wellwellwell 创建的主题 程序员 你有哪些能让自己开心电影或剧集推荐?
法国导演菲利普毕肖的电影都是喜剧,很搞笑
A 流程不就是 git flow 推荐的流程么?我没怎么多人合作过,我目前就用 A ,一个人肯定是没啥问题的,多人协作频繁冲突我觉得还是任务分配不合理吧,公用组件或者工具方法建议更改前群里问下再开发,或者独立出来开发一个包。
2022-12-13 12:12:50 +08:00
回复了 t202201 创建的主题 Java Java 后端记录每一次请求,有相关的开源框架吗
这还存数据库? aop 记录到日志看不就好了
2022-12-13 11:31:12 +08:00
回复了 Angela2022 创建的主题 程序员 [请推荐人气旺的前后端讨论群或网站]
别找了,最终都会成为吹水群。有问题不如发论坛,stackoverflow ,github
JS 方面:rollup / vite / react 没事研究下源码,业务中通用的组件和功能可以尝试自己写下,node 也用起来做个小工具; less 以及其他与处理器可以放弃了,已经可以用 tailwindcss 和 postcss 替代了,尝试参与开源

后端不太懂,不过我正在学 java , 我觉得懂一门后端语言还是有必要的,看楼主兴趣
2022-12-01 17:56:27 +08:00
回复了 itechnology 创建的主题 程序员 怎么随时分辨出哪个是预生产环境,哪个是生产环境呢?
这么搞肯定出问题,长期下来有几个人能分得清?不都是固定环境么
2022-11-29 15:24:05 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@janus77 你这么做完全没考虑资源加载速度的问题,万一刚好网络波动呢?万一更新的 js 资源过大呢?还有 load 的时候屏幕会闪烁吧,这体验也不好。
再说我从头到尾都没说一定要实时更新。
2022-11-29 11:00:17 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@star7th 也不能说是假需求,只能说场景有限,自动售货机是一个场景
2022-11-29 10:59:31 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@shengchao 不需要用 service worker ,我就用 fetch('/') 方法每五分钟请求一次,拿到响应头 etag 对比一下,不一样的话就表示版本更新,然后我在适当的时机 location.reload() 就更新版本了
2022-11-28 13:10:37 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@menglizhi2333 我觉得没必要做成 PWA ,按照 #28 的方案,我觉得已经可以完成这个功能了,虽然有点瑕疵,但是对于 js 体积不大的项目来说已经完全够用了
2022-11-28 13:09:24 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@blankmiss 我不懂灰度部署,不过#15 的方案中对比以文件内容生成 hash 值其实更好一点,线上项目也可能遇到回滚。
还有一种方式,fetch('/') 拿到 http etag 响应头,这也是个 hash 值,服务器自动生成,直接对比这个就好了
2022-11-28 11:17:08 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@heishu 抱歉,#10 的话我说错了,不是‘请求’,是请问;
我觉得不用后端参与,越少人参与越好
2022-11-28 10:44:05 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@opengps '想知道如何在用户不点击刷新或者不重开网页的情况下让用户获取最新版本代码?'
有前提,在用户不点击刷新,‘用户’
2022-11-28 10:07:44 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@opengps 我没有要求无感体验哦
2022-11-28 10:06:39 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@neoblackcap @opengps @dcsuibian @ryougifujino

我觉得大家都把这个功能实现想复杂了,不必用 websocket ,也不搞热更新,也不用其他同事配合,只要前端一个人能就能完成。帖子开头和 #7 楼也把前提说清楚了,这个方案是针对 to b 的,比如自动售货机,肯定有一段空闲时用户不在使用的。
其实有些人已经说到点子上了,自动更新版本肯定得用 js 执行 location.reload(),肯定得增加版本号(但这个版本号不用是 x.y.z 的形式,应为要额外为版本判断写代码);

我昨晚也实验了一下,因为我目前就在做自动收银机的项目,大家看看这个方案咋样:
-- 给 index.html 文件设置 http 缓存响应头 no-store 或者 no-cache ,保证每次拿到的 index.html 文件都是最新的
-- 给 js/css/img 等其他资源设置一个比较长时间的缓存响应头,比如一年。
-- 每次打包都给 index.html 文件中的 html 元素增加当前打包的时间戳,打包后的 <html /> 元素就变成了 <html data-timestamp="..." />, 这个时间戳其实就是版本号,因为我们只需要探测最新版本
-- 我在全局增加一个每隔几分钟获取 index.html 的请求,fetch('/').then(response => const bodyString = response.text()), 拿到 document 字符串,再用正则解析出 data-timestamp 去和 document.documentElement.dataset.timestamp 对比,如果比这个值大,就是最新版代码,然后再检测用户没操作多少秒执行 location.reload(), 这样就更新代码了

再说下 location.reload() 的执行前怎么才能不破坏用户体验
- 如果是自动售卖机,我会给个 3 秒倒计时的弹窗,有文案提示系统检测到版本更新,即将更新,倒计时结束后就 reload
- 如果是后台管理,我会像 vscode 每次更新一样,右下角给个提示,让用户自己觉得是否更新

这个方案我昨天以为能最小代价更新代码,比如我只更新了一个 js 文件,我就希望刷新后除了这个 js 文件其他文件都能走缓存;其实不是,因为打包工具(比如 rollup )不止会给该 js 更新 hash ,所有引入该 js 文件的文件名中的 hash 都会改变,这就导致该 js 的祖先文件都不能走缓存了,现在服务器都是按请求收费的,这样肯定不划算,但目前没办法。

不过如果你把外部库( node_modules )都单独分割出来,这个 js 文件(一般称为 vendor )基本是不变的,所以我觉得即使是在弱网环境下,reload 也不会太慢。

不知道大家咋看?
2022-11-27 22:19:32 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@blankmiss 我想过,其实不会,因为有 http 缓存配合,更新版本一般只更新几个文件,没更新的文件会走缓存。我不会也不想存任何文件在 storage 里;再说网络不好,那请求也走不通,那得不好页面也没事。
你的方案和我想的一样,轮训,然后等用户没操作了就主动刷新浏览器。但我想知道你是如何去知道有版本更新的?
2022-11-27 22:15:36 +08:00
回复了 karott7 创建的主题 程序员 请问线上 web 项目如何自动更新?
@dcsuibian 请求怎么做版本判断?
1  2  3  4  5  6  7  8  9  10 ... 13  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2842 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 06:31 · PVG 14:31 · LAX 23:31 · JFK 02:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.