最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

有关渐进增强的大讨论

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

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

关注

评论

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

apk优化,Android高级工程师必看系列,在线面试指南

欢喜学安卓

android 程序员 面试 移动开发

架构实战营模块1作业

半夏

学习 架构实战营

音频应用类开源 Demo 大盘点

anyRTC开发者

ios android 音视频 WebRTC RTC

项目优化-代码拆分

Darren

android 组件化 代码优化

秒合约交易系统开发|秒合约交易APP软件开发

系统开发

阿里巴巴开源容器镜像加速技术

阿里巴巴云原生

Serverless 容器 云原生 k8s 存储

如何让使命、愿景、价值观落地

石云升

价值观 使命 愿景 28天写作 4月日更

全网最全人工智能专业术语表(中英文对照)

澳鹏Appen

人工智能 大数据 数据 科技互联网 专业术语

Linux ln 命令

一个大红包

4月日更

北京天源迪科上线迪科商旅App

DT极客

双非本化学跨专业,投岗阿里/滴滴后端三面,最终拿下offer

Java 编程 程序员 架构 面试

Fluid — 云原生环境下的高效“数据物流系统”

阿里巴巴云原生

人工智能 云计算 容器 云原生 存储

七进七出,终获阿里32k*16offer,这就是我悲惨的面试经历~

Java架构师迁哥

史上最全的Java面试题库宝典,Github上标星200k,太香了!

Java架构之路

Java 程序员 架构 面试 编程语言

模块一课后作业

追随哆咪

架构实战营

数字货币期权交易系统开发|数字货币期权交易APP软件开发

系统开发

安全之路其修远兮,吾将上下而求索

Thrash

阿里的 RocketMQ 如何让双十一峰值之下 0 故障?

阿里巴巴云原生

容器 运维 云原生 k8s 消息中间件

架构实战营课程1作业

求索

学习 架构实战营

二十八分钟,带你用gitlab向企业微信发出灵魂拷问

📿

Java gitlab gitlab ci

锁仓挖矿系统开发|锁仓挖矿APP软件开发

系统开发

聪明人的训练(六)

Changing Lin

4月日更

翻译:《实用的Python编程》02_00_Overview

codists

Python

图解云原生应用设计模式

倪朋飞

Kubernetes 云原生

跟单交易系统开发|跟单交易APP软件开发

系统开发

查漏补缺!驱动核心源码详解和Binder超系统学习资源,挥泪整理面经

欢喜学安卓

android 程序员 面试 移动开发

Knative 基于流量的灰度发布和自动弹性实践

阿里巴巴云原生

Serverless 容器 开发者 云原生 k8s

Flink集成Iceberg在同程艺龙的实践

Apache Flink

flink

微信业务架构图

@oo?金樱子

金三银四旗开得胜!春招字节正式批4面,顺利拿到offer

Java 编程 程序员 架构 面试

给视频添加雪花飘落特效

老猿Python

OpenCV 音视频 图形图像处理 视频特效 引航计划

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