17 | 不一样的体验:交互设计和页面布局

前几讲我们一直在 JavaScript 的代码中游走,这一讲我们来换换脑子,聊一聊界面设计,讲一讲交互和布局。这部分对于基于 Web 的全栈工程师来说,不只是技术栈特殊的一部分,还是一个能够给个人发展格局带来更多可能的部分。

1. 单页面应用

SPA,Single-Page Application,即单页应用,是一种互联网应用在用户交互方面的模型。

用户打开一个页面,大部分操作都在单个页面里面完成。和传统的 MPA(Multiple-Page Application)相比,用户体验上,SPA 省去了页面跳转的突兀感受和等待时间,用户体验更加桌面化,操作迅速、切换无缝;软件架构上,SPA 可以更彻底地落实前后端分离,后端彻底变成了一个只暴露 API 的服务,将不同终端的视图层的工作,特别是页面聚合搬到前端来完成(如有遗忘请回看 [第 09 讲])。

对于许多大型应用,SPA 和 MPA 往往是在一定程度上结合起来使用的,比如新浪微博的网页版,用户可以浏览时间线,并作出一些转发评论、媒体播放等等操作,但是也可以跳到单独的单条微博的页面去。

但 SPA 也有着先天的缺陷。比如说,网页的 SEO(Search Engine Optimization)就是一个例子,单页应用上的操作,引起页面的状态改变,很难被搜索引擎敏锐地捕获到,并使之成为“可搜索到的”,因此 SPA 页面的 SEO 需要做额外的工作,关于这部分会在第五章中介绍一些相关知识。

再比如,浏览器上网页操纵的功能,像前进、后退的功能,也需要一些特别的技巧才能支持,毕竟,和互联网整体翻天覆地的改变相比,浏览器的核心设计一直以来都变化缓慢,而地址栏、页面控制功能等等可都不是为着 SPA 考虑的。最后,SPA 通常会伴随着大大增加的在线应用复杂程度。

2. 渐进式增强

渐进式增强,即 Progressive Enhancement,强调的是可访问性,即允许不同能力的设备都能够访问网页的基本内容,使用网页的基本功能;但是,当用户使用更加先进的设备时,它能够给用户带来更强大的功能和更好的体验。

举一个小例子,对于非常极端和基础的设备,网页可以只加载 HTML;更高级一点的设备,则可以加载 CSS;而对于多数高级设备,则还需加载 JavaScript。这三种设备都可以使用网站的核心功能,但是只有最后一类设备可以使用全部功能。当然,实际的增强效果递进未必会那么极端,对于每一个递进,可以只是部分样式,部分标签,部分脚本等等。

渐进式增强的理念不仅仅可以对不同设备的访问带来普适性,对低端设备的访问更为友好,它还有一些其它优势。比如说,立足于网页基础的 HTML,可以让网页对于搜索引擎更加友好,因为 CSS 样式和 JavaScript 行为不一定能被搜索引擎解释执行并收录。

在这个过程中,HTML 的语义化变得越来越重要。语义化,指的就是让 HTML 页面体现出内容的结构性,即让 HTML 具备自解释能力,而不是一堆冷冰冰的缺乏语义的标签。你看下面的例子:

<article>
  <h1>Article Title</h1>
  <p>This is the content. Please read <em>carefully</em>.</p>
</article>

其中的 article 标签,就是具备语义的,表示着其中的内容是一篇文章,我们当然可以使用没

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值