网页技术的兴衰变迁

本文回顾了近三十年网页技术的发展历程,从早期的表格布局和Web安全色,到CSS标准化、AJAX技术兴起,再到现代前端框架和移动端革命。作者通过亲身经历剖析技术迭代规律,并探讨在社交媒体衰落背景下如何构建面向未来的网页解决方案。

网页技术的兴衰变迁

当朋友和家人初为父母时,我总会给出一个建议:当你觉得已经掌握一切时,一切都会改变。刚熟悉喂养、换尿布和规律小睡,就该开始添加辅食、如厕训练和整夜睡眠。掌握这些后,又迎来学前教育和罕见的小睡。循环往复。

如今从事设计和开发工作的我们也是如此。我在网页领域工作近三十年,见证了理念、技巧和技术的周期性兴衰。每当开发者和设计师进入稳定节奏,总会有新理念或技术出现,颠覆并重塑我们的世界。

发展历程

我在90年代中期创建了第一个网站。当时的网页设计和开发毫无规范可言。除单栏布局外,我们使用表格元素实现布局,常通过填充单像素透明GIF的空单元格来制造空白。用大量font标签嵌套实现文字样式,可选字体仅三四种:Arial、Courier或Times New Roman。1996年Verdana和Georgia字体发布时,我们欢欣鼓舞因为选择几乎翻倍。唯一安全的颜色是216种跨平台"网页安全色"。少数交互元素(如联系表单、留言簿和计数器)大多由CGI脚本驱动(当时主要用Perl编写)。要实现独特外观需要层层堆砌技巧,交互通常仅限于特定页面。

网页标准的诞生

世纪之交,新周期开始。布满表格布局和font标签的冗余代码逐渐衰落,推动网页标准的浪潮兴起。CSS等新技术获得浏览器厂商、开发者和设计师更广泛采用。标准化的转变并非偶然或一蹴而就,需要W3C与浏览器厂商的积极互动,以及Web标准计划等组织的大力推广。A List Apart和Jeffrey Zeldman的《用Web标准设计》等书籍在教导开发设计人员标准的重要性、实施方法和向机构推广方面发挥了关键作用。渐进增强等方法引入内容应面向所有浏览器可访问的理念,高级浏览器可获得增强功能。同时,CSS禅意花园等网站展示了CSS与坚实语义化HTML结合后的强大威力。

PHP、Java和.NET等服务器端语言取代Perl成为主流后端处理器,cgi-bin被扔进垃圾箱。更好的服务器端工具带来了第一个网页应用时代,始于内容管理系统(特别是博客领域的Blogger、Grey Matter、Movable Type和WordPress)。2000年代中期,AJAX为前后端异步交互打开大门,页面无需重载即可更新内容。Prototype、YUI和jQuery等JavaScript框架涌现,帮助开发者在标准支持参差不齐的浏览器间构建可靠客户端交互。图像替换等技术让巧妙的设计师展示自定义字体,Flash技术则实现动画、游戏和更多交互。

这些新技术、标准和方法从多方面重振行业。随着设计师探索更多样化的样式和布局,网页设计蓬勃发展。但我们仍依赖大量技巧:早期CSS在基础布局和文本样式方面比表格布局巨大进步,但当时局限意味着复杂形状(如圆角或斜角)仍需大量图片,全高列外观需使用平铺背景等技巧。复杂布局需要各种嵌套浮动或绝对定位。Flash和图像替换字体是突破五大字体的重要开端,但都带来可访问性和性能问题。JavaScript库让任何人都能轻松添加交互,但代价是简单网站下载量翻倍甚至翻四倍。

网页作为软件平台

前后端协同持续改进,引领现代网页应用时代。扩展的服务器端编程语言(持续增加Ruby、Python、Go等)和React、Vue、Angular等新前端工具,使我们能在网页上构建功能完善的软件。伴随这些工具出现协作版本控制、构建自动化和共享包库等。曾经主要是链接文档的环境变成无限可能的领域。

同时移动设备功能增强,让我们口袋中就有互联网接入。移动应用和响应式设计开创了随时随地新交互的机会。强大移动设备与开发工具的结合助推社交媒体等中心化工具兴起,让人们更易连接和消费。随着直接在Twitter、Facebook甚至Slack上联系他人变得更便捷普遍,托管个人网站的需求衰减。社交媒体提供全球范围的连接,随之带来利弊。

当前现状

近两年我们似乎到达另一个重大转折点。随着社交媒体平台分裂衰落,人们重新燃起对自己内容所有权的兴趣。建站方式多种多样,从经典纯HTML文件托管到静态站点生成器,各种内容管理系统。社交媒体分裂也有代价:我们失去发现和连接的关键基础设施。Webmentions、RSS、ActivityPub等IndieWeb工具能帮助解决,但对非技术用户仍实施不足且难用。我们能构建精彩个人网站并定期更新,但若缺乏发现和连接,有时感觉如同向虚空呐喊。

浏览器对CSS、JavaScript和Web组件等标准的支持加速,特别是通过Interop等努力。新技术获得全面支持的时间大幅缩短。我常了解新功能后检查浏览器支持,发现覆盖率已超80%。如今使用新技术的障碍往往不是浏览器支持,而是设计开发人员学习可用内容和采纳速度的限制。

如今通过几个命令和几行代码,我们就能原型化几乎任何想法。现有工具让启动新项目变得前所未有的简单。但这些框架节省的初始交付成本,最终会随着升级维护成为技术债务的一部分。

如果依赖第三方框架,采用新标准可能更耗时,因为需等待框架先采纳。这些曾让我们更快采用新技术的框架,现在反而成为阻碍。这些框架通常还有性能成本,迫使用户等待脚本加载才能阅读或交互页面。当脚本失败时(无论代码问题、网络问题或其他环境因素),往往没有替代方案,导致用户面对空白或破损页面。

未来方向

今天的技巧塑造明天的标准。暂时拥抱技巧推动现状发展本身没有错。问题只在我们不愿承认它们是技巧或犹豫替换时出现。那么我们能做什么来创造理想的网页未来?

为长远构建:优化性能、可访问性和用户体验。权衡开发者友好工具的成本——它们可能让今天工作轻松些,但如何影响其他方面?对用户、未来开发者、标准采纳的成本是什么?有时便利值得,有时只是你习惯的技巧,有时反而阻碍你获得更好选择。

从标准出发:标准持续演进,但浏览器对旧标准的兼容性值得称道。第三方框架则不尽然。用90年代最技巧化HTML构建的网站至今仍正常运行,而用框架构建的网站几年后就可能出问题。

精心设计:无论擅长代码、像素还是流程,都要考虑每个决策的影响。许多现代工具的便利代价是,不总能理解导致其设计的底层决策,不总能考虑这些决策的影响。与其盲目"快速行动打破常规",不如用现代工具节省的时间更仔细思考,慎重设计。

持续学习:持续学习就是持续成长。有时难以 pinpoint 值得学习的内容与今日技巧的区别。可能专注学习明年就无关的内容(记得XHTML吗?)。但持续学习在大脑中开辟新连接,某天学到的技巧可能启发另一天的不同实验。

玩耍、实验、保持独特:我们构建的网页是终极实验,是历史上最大规模的人类努力,而我们每个人都能在其中创造自己的天地。勇敢尝试新事物,构建创意游乐场,在疯狂实验室做滑稽实验,开创自己的小生意。从来没有比这更能激发创造力、承担风险和探索能力的地方。

分享与放大:在实验、玩耍和学习时,分享对你有用的经验。在自己的网站写作,在喜欢的社交媒体发布,或在TikTok上宣扬。为A List Apart撰稿!但也要花时间放大他人:发现新声音,向他们学习,分享所学。

前行与创造

作为网页(及更广领域)的设计开发者,我们每天都有责任构建未来,无论是个人网站、数十亿人使用的社交媒体工具,还是介于其间的一切。让我们将价值观注入创作,让网页成为对所有人更美好的地方。创造唯你独具资格制作的事物,然后分享它、改进它、重制它或创造新事物。学习、创造、分享、成长,周而复始。每当你觉得掌握网页时,一切都会改变。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计