我是 Discourse 论坛的普通用户,通常会同时打开多个标签页浏览多个讨论。问题在于,当 Discourse 检测到更新时,每个标签页都会弹出相同的提示窗口。在一个标签页中点击“刷新”并不会刷新其他标签页(至少在 Firefox 87/macOS 环境下如此),因此论坛会不厌其烦地反复询问我同一个问题。
第二个问题是,坦白说,这其实是一个我并不在意的细节。我知道你们对自己的发布版本引以为豪,并且背后有巧妙的 ServiceWorker 机制来支持更新。但这并不会让我感到如此紧迫,以至于需要弹出这样的提示。我甚至通常无法看出具体有哪些变化。我并不觉得需要立刻放下手头的一切去“立即更新”。如果这些更新确实是某些 overdue 的紧急安全补丁,那么你们应该明确说明,或者干脆直接刷新而无需询问。
该弹窗要求我做出决定,却没有提供任何信息或上下文来帮助我做出判断,也没有任何理由将其呈现为一种紧急中断。
11 个赞
Falco
(Falco)
2021 年2 月 25 日 15:44
2
在其他单页应用中,已有使用更不显眼的“请刷新页面”的现有技术。
13 个赞
sam
(Sam Saffron)
2021 年3 月 1 日 05:22
3
如果您正在活跃使用该网站,此警报将不会显示。我们会拦截该过渡过程。
仅当 JavaScript 负载已更改,且距离上次更新已过去数小时,此警报才会显示。
对我们而言,构建一个能够判断“用户 X 不关心更新 Y"的系统并不现实。更新 Y 可能包含对用户 X 关键工作流的修复。
我理解,如果您有一个极其活跃的网站,并且习惯打开多个标签页,而该网站每天更新多次,这可能会令人沮丧。
总而言之,我听到了您的不满,但我不确定是否有简单的改进措施能针对您的使用场景改善这一情况。
6 个赞
我同意这个通知弹窗确实令人困惑。通常当我看到它时,我的第一反应是以为有新内容可以查看。但实际上,这只是 Discourse 系统本身进行了更新,并不代表有新的帖子等待查看。
有没有办法在更新 Discourse 时,无需让用户做出任何选择?
2 个赞
sam
(Sam Saffron)
2021 年3 月 1 日 05:35
5
问题是,你可能正忙着手头的任务。
也许……如果你处于后台标签页……且没有打开针对其他主题的编辑器……并且我们能够保留滚动位置……并且我们能够保证更新不会因分布式拒绝服务攻击而冲击网站(通过错峰和随机超时机制)……
情况会变得复杂。为了确保透明更新的稳定性,我们可能需要投入数天的工作量。
此外,频繁部署的网站会增加流量,因为我们将强制加载中间版本。
5 个赞
好的,也许我们可以通过简单的文案修改来改善我所描述的问题,例如改为“本网站所使用的应用程序已更新。”
2 个赞
sam
(Sam Saffron)
2021 年3 月 1 日 05:38
7
正如 @codinghorror 所说,文案的改进当然非常欢迎:heart:
4 个赞
riking
(Kane York)
2021 年3 月 1 日 07:54
8
kornelski:
而且我通常会打开很多标签页,里面有很多讨论
sam:
如果你正在活跃地使用该网站
它绝不会出现在 你正在使用的标签页 中。它会出现在所有其他标签页上,即使你在主标签页上四处点击,它也会一直停留在那里。
3 个赞
我每次更新应用时都会看到这个弹窗。我在想,这是否也因为我总是开着多个标签页。我怀疑这是高级用户的行为,而且这种情况很少见——除非是处于技术前沿的网站,否则它们不会频繁更新。所以,也许整个问题并不值得花太多时间去关注。
不过,这段文案可以改进一下,以便更好地解释当前情况。我刚提交了一个拉取请求来提出建议……
本网站刚刚进行了软件升级。立即获取最新版本吗?
4 个赞
downey
(Michael Downey)
2021 年3 月 1 日 17:01
10
tobiaseigen:
本站刚刚完成了软件升级。是否立即获取最新版本?
我认为这个方向是对的,但对我来说(如果我不知道这是怎么回事),读起来有点像需要下载并安装某些东西,这可能会让一些人望而却步。
本站刚刚完成了软件升级。请刷新以查看最新版本?
刷新 稍后
6 个赞
说得对。我想,那些没意识到自己访问的其实是一个应用的人,可能会对“软件”这一提法感到困惑。这听起来简直有点像网络钓鱼。
1 个赞
说实话,我很惊讶你会遇到这个问题——网站所有者多久更新一次网站?
我并不太喜欢在这条消息中添加技术术语来“改进”它……它看起来已经非常接近 WhatsApp 的做法了:
有可用更新 —— 点击更新 WhatsApp
本网站刚刚更新。现在刷新以获取最新版本吗?
我想我们可以把它改为:
有可用更新。立即更新?
我接受任何听起来更自然的文案。
4 个赞
riking
(Kane York)
2021 年3 月 2 日 03:53
13
针对我的使用习惯,一个具体的改进建议是:当我点击任意标签页的“是”时,能够重新加载所有标签页。
5 个赞
sam
(Sam Saffron)
2021 年3 月 2 日 04:03
14
不确定这样是否合适……40 个标签页同时访问 Discourse,会立即触发速率限制。另外……为什么要制造这么多流量呢?
5 个赞
原帖作者的抱怨是合理的。我经常遇到这种情况,这种行为并不直观,完全不清楚点击“确定”或“取消”会发生什么。这是 Discourse 多年来一直存在的一个怪癖,我已经习惯了,不再为此担心。这是我第一次看到有人对此抱怨。这确实是个问题,但它只影响像 meta 这样频繁更新的站点上的高级用户,因此我逐渐认同“少即是多”的理念。我认为我们无需采取任何行动,除非我们想进一步简化语言,正如 @codinghorror 所建议的那样。
我更感兴趣的是探究为什么我们这么多高级用户觉得有必要打开多个标签页。Discourse 有哪些改进可以减少这种需求?对我而言,通常与草稿有关。当我正在撰写一篇需要花费时间的帖子时,如果收到关于我参与的另一篇帖子的通知,我会按住 Control 键并点击该通知跳转过去处理,但随后可能陷入其中,当再次收到通知或看到需要处理的帖子时,又不得不重复这一过程,如此循环往复。过了一两个小时,我发现自己打开了许多标签页,然后不得不逐个返回以完成帖子并关闭它们。由于 meta 的更新频率比其他站点更高,且我大部分时间都在这里活动,因此我经常收到这个警告。
3 个赞
是否需要使用模态框?浏览器针对关键更新有弹窗,但通常位于角落,不会遮挡整个页面。Falco 的 WhatsApp 示例似乎更好。
我们能否在标题栏中添加一些内容?
16 个赞
bts
(Brendan Schlagel)
2021 年3 月 2 日 17:48
17
好主意,这样看起来更美观,干扰也更少。
核心问题在于实际的紧迫性有多强?比如,如果我不更新 Chrome 一周,也没什么大不了的。同样地,对于这种模拟横幅版本,我可能会暂时忽略它,先完成草稿或其他工作。
是否存在 Discourse 更新后必须立即刷新页面,否则网站就会出问题的情况?在我看来,只有在这种情况下,全屏模态弹窗才有意义。
1 个赞
这并不总是适用于 Chrome(或 Discourse)……更新可能是安全更新,在你安装之前可能存在漏洞。
在这两种情况下,都可能出现影响你的故障,直到你完成更新。但正如 sam 提到的,试图为每个用户做出这种判断会引入巨大的 复杂性。
3 个赞
bts
(Brendan Schlagel)
2021 年3 月 2 日 18:17
19
没错,但正如你所说,实践中无法涵盖所有可能性。作为用户,我更希望由自己来决定何时更新 Chrome;如果每次更新一发布就必须立即重启浏览器,我肯定会觉得非常麻烦。
我想问的是,除了 Discourse 更新修复用户可能认为重要的问题之外,拥有打开不同版本应用标签页的情况 本身 是否会导致问题?(对我来说,前者足以支持使用横幅或某种形式的提醒,而后者则足以支持通过弹窗强制立即更新。)
sam
(Sam Saffron)
2021 年3 月 3 日 00:13
20
我们可以将其去模态化,但我担心的是,如果在某些异常情况下被忽略,可能会导致一些真正的病理性问题出现。
草稿可能无法保存
提交帖子后,它可能直接进入垃圾区并永远丢失
帖子的阅读时间可能停止记录
点赞可能无法注册
导航可能失效,点击链接时可能卡住
后果可能非常严重。
这主要取决于标签页囤积的程度以及两次服务器更新之间的时间间隔。
例如,想象一个实例在 4 年后才进行更新。
3 个赞