几天前,Chris 写下了他对 Chrome 如何弃用 alert()
、confirm()
和 prompt()
的看法,并收集了 来自开发人员的一堆想法。 如果某些功能可以被主要浏览器关闭,许多人开始担心网络的可预测性。
对此,我真的很喜欢 Richard Harris 的这篇笔记
我们不能将“附带损害是进步的代价”这种态度正常化,即使我们接受这个前提(我并不接受),即移除像 alert 这样的 API 代表着进步。 尽管存在缺陷,但网络普遍被认为是一个稳定的平台,我们今天做出的投资将经受住时间的考验。 在一个网站被视为本质上是短暂的物体,我们今天普遍依赖的 API 可能被明天的规范制定者视为不需要的包袱的世界里,网络已经输了。
我必须承认,这件具体的事我不太感兴趣。 但是! 我认为它揭示了软件和网络之间一个非常重要的区别。 以下是一个故事。
前几天,我一直在摆弄 Astro(我非常喜欢)。 我用它重建我的个人网站,然后我决定——在朋克摇滚的驱使下——升级到它的最新版本。 我认为它可能会让我的构建过程更快,并让我有机会探索新功能。 但不幸的是——一切都坏了。 API 被弃用了! 我的构建过程坏了! 一切都崩溃了。
这不是我在贬低 Astro。 我仍然很喜欢它。 但重要的是要记住,Astro 不是网络。 React 或任何其他框架实际上也不是。 这些团队可以随意弃用东西,尽可能地改进东西。 他们可以把一切都烧掉,重新开始。 但像 alert()
、旧的 CSS 功能和 HTML 元素不在同一类别。 它们不能以相同的方式被弃用,因为正如 Jeremy 所说,网络需要可预测性。 我们不能把网络当作普通的软件,因为没有哪个团队或个人拥有这些功能。
我的抱怨的核心是:alert()
和 confirm()
不是 Chrome 的功能,而是网络的功能。 但我担心许多人可能会这么认为。
这也是为什么标准如此重要! 在公开讨论新功能,让我们能够在将新功能发布到这个平台之前修复所有错误并回答所有问题,在这个平台上,你不能在意识到自己搞砸了之后就删除它。 我甚至没有真正贬低 Chrome,但这种 软件 和 开放网络 之间的区别很重要,对吧?
哇,你现在才发现一个浏览器的垄断是件坏事吗? 多年来 IE 的霸权还没教你什么吗?
这就是为什么我坚持使用 Firefox。 至少我们还有很棒的浏览器,它不是 Chrome!…… 至少现在是这样。
我只在进行跨浏览器测试时使用 Chrome,只是为了确保它没有对我的完美 UI 做出任何愚蠢的事情! ;)
所以你是在为 10% 的用户开发,而 80% 的用户是二等公民。 做得好,伙计。
@Pajfo u venu
由于 Chrome 支持更广泛的 CSS 和 JS 功能,长期以来,在 Firefox 上开发被认为是一种好习惯,因为它在反过来做时,出现故障的可能性较小。
我以前也是这样——一个一直使用 Firefox 的用户,只在进行跨浏览器测试时使用 Chrome…… 直到现在。
Firefox 在每次更新后都变得越来越 buggy、越来越慢,越来越容易崩溃。 它不再是以前那个轻量级可靠的浏览器了。
哎呀,Chrome 实际上感觉比 Firefox 更具响应性,而且它从未在我这里崩溃过。
过去几个月我一直使用 Firefox,仅仅因为它几乎是唯一一款非 WebKit/Chromium 的 FOSS 浏览器,但现在我可能要切换到 Chrome 或 Brave 了。
希望它会像 Chrome 替换 cookie 的拙劣尝试一样。
我理解这种做法会让人感到恐惧,因为我们这些在代码中以非侵入性方式使用它的人,可能意味着大量的重构,尤其是在遗留代码中。 但是我理解为什么 Chrome 想删除 alert,因为一些网站会简单地阻塞你的浏览器标签页,尤其是在手机上,并且以非常滥用的方式使用这些功能。 这是一场需要讨论的重大辩论。 但是说实话,我认为这些网站上的滥用行为应该可以被举报,并且应该停止索引和在搜索结果、广告或任何东西中显示它们。