当我在 2000 年代中期从事该领域的第一份“真正”工作时,在 Web 开发领域受到重创:构建小型网站(每页不超过 100KB),仅使用 JavaScript 制作特效,并制作确保一切(从图像到 Flash 内容)都有后备机制,以便 JavaScript 功能逐步增强. 如果没有 JavaScript,该网站仍然可以 100% 运行,只是没有那么花哨。

这个建议的原因很简单:在网络的早期,每个人都被限制在​​拨号互联网连接上​​,这真的很慢。哎呀,连上网都花了几分钟,更别说访问网站了。点击“连接”按钮,然后去煮点咖啡或抽根烟,因为这实际上需要几分钟。因此,从这个意义上说,在 2000 年代中期建立一个好的网站的关键原则包括使网站变小并为内容提供可靠的后备是完全合理的。

我怀念那些日子很多。在我看来,这些限制使网络变得更好。但是,随着时间的推移和服务提供商技术在美国通过宽带(最终是光纤)不断改进,这些限制不再被视为问题。

今天,Web 开发的规则完全不同。它更多地与​​开发人员体验​​有关,而与用户体验无关:构建流程、决定使用哪个框架和技术堆栈,以及确定网站在 Google 搜索结果中的位置。可悲的是,守门人(即,如果您不选择“y”,您就不是真正的“x”)和框架之争已经取代了“如何在没有 JavaScript 的情况下制作这个很酷的东西”的对话。我真的不关注这些东西,因为在一天结束时,它会在浏览器中全部呈现为 HTML、CSS 和 JavaScript;使用任何对你有用的东西。

#yyds干货盘点#为失败做好准备并优雅地处理它_javascript资料来源:  ​​​@aexm​

然而,令我困扰的是,需要 JavaScript 才能使用的大型网站已成为公认的规范。目前的统计显示网站正在以平均-大称重一饮而尽-​​每页2MB​​?!而且,如果您没有启用 JavaScript,请为暴风雪做好准备(这就是我所说的只显示白屏的网站)。

JavaScript 已成为网络的第三大支柱。我知道 JavaScript 非常有用,那我为什么要选择它?我认为如果没有 JavaScript,很多网站甚至无法加载。从什么时候开始加载 HTML 和 CSS 依赖于 JavaScript?

我最近搬到了大城市郊区的一个农村地区,我想起了那些早期的网络开发时代,因为我的移动设备上的互联网连接再一次糟糕透了。宽带连接没问题,但是当我在外面或停电时,我会遇到拨号上网时的缓慢体验。当我在移动设备上浏览网页时,我使用阅读器模式,我必须关闭诸如 JavaScript(以及大多数图像,对 JavaScript 延迟加载的赞美)之类的东西,因为下载和运行太多了。但是,仅通过关闭 JavaScript,许多站点甚至无法加载。白屏死机不是我手机死机的结果;这是我对互联网的访问。并且这个白屏一个接一个地出现,因此是暴风雪。

#yyds干货盘点#为失败做好准备并优雅地处理它_javascript_02我非常熟悉在移动设备上浏览网页的体验。

在大多数情况下,我可以通过在家中使用 WiFi 来完成必要的互联网活动,例如工作、购物和支付账单。但是,今年夏末,我的电没电了。所以,我用我的移动设备访问了电力公司的网站,看看什么时候可以恢复服务,因为整个房子都在用电,我需要知道我们是否需要为食物和水等事情做出安排。但是,这家电力公司的移动网站很大(传输了 3MB,资源有 8.6MB — 哎哟)并且无法加载(即使启用了 JavaScript)。

很生气,我去了推特并表达了我的愤怒。

公用事业(电力)服务应该需要提供无 JS 的体验。

棒子断电意味着没有 WiFi,几乎没有手机信号。

如果您为此类服务制作网站,请考虑始终为人们提供简单的纯 html 体验。

— 希瑟 (@_hmig) 

​2021 年 8 月 29 日​

我收到了一些非常棒的回复,告诉我有些网站确实能很好地处理约束,比如​​traintimes.org.uk​​​和​​NPR​​​的​​纯文本版本​​。是的!他们为什么不提供中断页面的纯文本版本,以便当人们真正需要该站点的页面时,即使条件最差,他们也可以使用它?

我的断电情况是一种一次性的情况,但​​美国和全世界​​​都有​​人​​​生活在不可靠的互联网上,因为他们别无选择。NPR 发表了一篇文章,讲述了在大流行期间在​​社区互联网不可靠的​​地区试图教学生的斗争,很难相信这是美国任何地区互联网可用性的当前状态但是,事实仍然是.

很明显,很多人会从早期 Web 开发的限制中受益。在宽带网络可用之前构建的网站(如1996 年臭名昭著的​​Space Jam​​​网站)的美妙之处在于,它们几乎可以在任何情况下从任何地方加载到任何类型的设备上,因为它们是在考虑到这些限制的情况下构建的。希望所有开发人员都开始采用​​自适应加载策略​​,为慢速网络或低端设备上的用户提供解决方案。