写点什么

有关渐进增强的大讨论

  • 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:341903
用户头像

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

关注

评论

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

构建基于React18的电子表格程序

葡萄城技术团队

React 表格 纯前端表格技术

数据产品学习-实时计算平台

第519区

实时计算 数据产品 数据开发 大数据平台

LP流动性挖矿系统开发生态系统详解

开发微hkkf5566

网络安全等级测评和商用密码应用安全性评估是一回事吗?

行云管家

网络安全 等级保护 商用密码

各厂商的数据湖解决方案

五分钟学大数据

数据湖 6月月更

大数据培训Flink高频面试题

@零度

flink 大数据开发

GameFi新的启程,AQUANEE将于6.9日登陆Gate以及BitMart

西柚子

最佳实践 | 用腾讯云AI语音识别零基础实现小程序语音输入法

牵着蜗牛去散步

最佳实践 语音识别 小程序开发 腾讯云AI 语音输入法

精益产品开发体系最佳实践及原则

阿里云云效

云计算 阿里云 精益开发 产品开发 开发

技术干货 | Linkis1.0.2安装及使用指南

康月牙

开源社区 微众银行 WeDataSphere Linkis 使用实践

web前端培训React如何原生实现防抖

@零度

前端开发 React

kube-apiserver调度器核心实现

申屠鹏会

k8s

知名网络安全硬件平台厂商铵泰克加入龙蜥社区

OpenAnolis小助手

开源 网络安全 龙蜥社区 CLA 铵泰克

元宇宙产业投资全景图,快人一步走进元宇宙新时代!

博文视点Broadview

Springcloud Oauth2 HA篇

Damon

微服务架构 安全架构 6月月更

保姆级教程:如何成为Apache Linkis文档贡献者

康月牙

Apache GitHub 教程 文档 Linkis

《数字经济全景白皮书》银行财富管理篇 重磅发布

易观分析

理财 银行理财

喜报 | 旺链科技签约汨罗市文旅体产业项目,打造“链”上数字乡村

旺链科技

区块链 产业区块链 乡村振兴 汨罗市

Java 对象如何安全的 toString

HoneyMoose

分布式数据对象:超级终端的"全局变量"

OpenHarmony开发者

OpenHarmony

评“开发人员不喜欢低代码和无代码的8个理由”

代码制造者

程序员 编程语言 开发 iVX 低代码开发

为什么 SQL 语句使用了索引,但却还是慢查询?

okokabcd

MySQL

技术干货 | Linkis实践:新引擎实现流程解析

康月牙

Apache 开源社区 WeDataSphere Linkis 使用实践

企业数字化转型该如何做?三个融合、三个转换

小炮

后端适用,Apifox接口文档设计和调试教程【工具篇】

Liam

Java 后端 Postman 后端开发 API文档

Ubuntu20.04设置静态IP

echeverra

Linux 静态IP

细说腾讯如何做到直播延时降低90%以上方案

C++后台开发

WebRTC CDN 音视频开发 视频直播 直播低延迟

工资管理系统该如何使用?

低代码小观

企业管理 工资 管理系统

ARM64 上的性能怪兽:API 网关 Apache APISIX 在 AWS Graviton3 上的安装和性能测试

API7.ai 技术团队

AWS 网关 arm APISIX

基于模板配置的数据可视化平台

百度Geek说

陕西西安等保测评单位有哪些?在哪里可以查到?

行云管家

西安 等保测评 等保测评机构

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