写点什么

有关渐进增强的大讨论

  • 2013-09-13
  • 本文字数:1260 字

    阅读完需:约 4 分钟

最近,ember.js 的创造者之一 Tom Dale 撰写的文章,重新点燃了酝酿已久的关于对渐进增强需求的争论:

几天前,Daniel Mallz 在 tumblr 上发布了一篇博客文章,题为:对 JavaScript 的一声叹息。[……] 这篇博客文章旨在刁难那些“不合群”的人——在这里,指的是那些在 JavaScript 遭到禁用的情况下无法正常工作的网站。

不过,我了解到一些不好的消息说:“渐进增强已死,少年。它已经成为过去。最起码对大部分 Web 开发者来说是这样的。”

“数年前,在 Web 浏览器领域发生了一些事情。不知道大家是否曾留意它们,但至少我没有,”他说,“浏览器从精彩的交互式文档查阅器,转变为全世界最先进、分布最广泛的应用运行时环境。”那么,渐进增强到底是什么呢?维基百科这样描述它:

渐进增强是一种 Web 设计策略,它强调可访问性、语义化 HTML 标记、外部样式表和脚本技术。渐进增强以分层的方式运用 Web 技术,从而让使用任何浏览器或互联网接入方式的任何人,都能够访问 Web 页面的基础内容和功能;同时也面向使用更高级浏览器软件或更大带宽的用户,提供页面的增强版本。

随着浏览器厂家不断尝试创新和差异化,Web 应用的表现能力和用户体验得到了持续提升。作为提供这些响应式应用的平台,浏览器的普遍可用性是令人信服的。

在争论的另一端,是 Nicholas Zakas 等人——他的演讲解释了让应用如此依赖JavaScript 需要付出的代价;除了常见问题,针对与现代“SPA”应用中JavaScript 过“重”有关的问题,他也在演讲中提供了分析和洞察,而且还给出了一些关于如何提供优雅地回退选项的建议。

从另一个角度看待这场争论的话,实际上我们今天所了解的Web,已经因为特定的架构特性得到了扩展。 Stefan Tilkov 在 QCon 上的一场演讲中,探讨了对 JavaScript 的需求是如何不引人注目。他建议应用拥抱 Web 及其架构特性,并将这种架构当作面向资源的客户端架构来参考。

ROCA 尝试着定义一套推荐——独立于任何特定框架、编程语言或工具——它将体现我们认为有利于 Web 应用架构的那些原则。其目的在于作为一种参考,可以原样实现,或是与其他方法进行对比,以突出显示不同的设计决策。

那些 JavaScript 优先的应用,将会打破我们所熟知的 Web。 Jake Archibald 是一位提倡 Google Chrome 的开发者,他认为主要改变的特性将涉及分享、链接和导航;就此而言,拥有一个可以被 Google、Bing 等搜索引擎搜索的 Web 站点,将依赖应用的这些属性。不过,并非所有应用都满足这些要求,例如基于浏览器的游戏、视频播放器等等就是例外。但他坚持认为,渐进增强依旧重要。

Tom Dale 承认,在现代 JavaScript 应用中使用多种技术,有可能实现这些特性;但这一切应该永远是被实用主义所推动的。

如果从一开始就选择 JavaScript,我们将能够更快构建带有 UI 的应用——在以往这是不可能的。[……] 当然,总会存在一些场景,使用由服务器上呈现的 HTML 会更加合适。但是我们需要分析,目标用户群中,有多大比重的用户不能使用 JavaScript,以及我们想要提供什么样的用户体验,并据此做出决定。

查看英文原文: The Big Progressive Enhancement Debate

2013-09-13 21:341892
用户头像

发布了 256 篇内容, 共 72.2 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

机器学习如何推进现代医疗护理服务的变革

Geek_b33b8e

学习 开源 跨平台 行业资讯 医疗方案

Apache Pulsar 社区周报|09-12~09-18

Apache Pulsar

开源 云原生 pulsar Apache Pulsar 消息中间件

第二周-框架设计-学习总结

刘希文

提高网站的吞吐量

架构师修行之路

区块链行业简报

CECBC

区块链 金融 银行

“工业互联网+区块链”融合发展新图景

CECBC

区块链 互联网 信息安全

week13---课后作业

Geek_165f3d

架构师训练营第 1 期第 2 周作业

好吃不贵

极客大学架构师训练营

Flink 源码 | 自定义 Format 消费 Maxwell CDC 数据

Apache Flink

flink

你觉得Android又凉了?那带你看下2020年Android开发的前景如何?

Geek_211aa0

android 程序员 中年危机 移动开发 前景

阿里3轮面试都问了RecyclerView

Geek_211aa0

android 面试 阿里 移动开发 RecyclerView

话题讨论 | 你的编程能力是如何突飞猛进的?

InfoQ写作社区官方

学习 写作平台 排行榜 代码

01_Eureka源码初探

阿亮

源码 微服务 SpringCloud Eureka

为什么选择敏捷软件开发-考虑敏捷开发的主要优势

小隐乐乐

敏捷开发

北京自贸区总体方案公布:建设法定数字货币试验区

CECBC

金融 国内宏观

腾讯看点基于 Flink 的实时数仓及多维实时数据分析实践

Apache Flink

flink

中国消费者独享长达三个月的年终跨境网购狂欢季

爱极客侠

week13--课后总结

Geek_165f3d

有感-人工智能学习

superman

机器学习笔记-概念

superman

Initialization failed for 'https://start.spring.io' Please check URL, network and proxy settings解决办法

Geek_416be1

甲方日常 21

句子

生活 工作 随笔杂谈 日常

【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?

冰河

MySQL 高可用 主从复制

华为,与山河共舞这支芭蕾

脑极体

Spring Cloud 微服务实践(6) - 资源服务器

xiaoboey

微服务 Spring Cloud OAuth2 JWT 权限控制

Mac 系统 VS Code 设置向下复制粘贴当前行快捷键(Ctrl + D)

AlwaysBeta

ide vscode Mac

按自己的逻辑,避免千篇一律的呈现品牌官方商城

boshi

产品设计 页面展示 商城

学习笔记-人工智能概念(小白)

superman

磨刀不误砍柴工,搞定云网络系统性能测试

lklmyy

IaaS 云网络 质量保障

架构师训练营第 1 期第 2 周学习总结

好吃不贵

极客大学架构师训练营

Spring 5 中文解析数据存储篇-DAO支持

青年IT男

Spring5

有关渐进增强的大讨论_REST_Dilip Krishnan_InfoQ精选文章