众所周知,JavaScript不是什么时候都能用。老旧的浏览器,高安全的环境(比如银行,或者用户设置),文本浏览器(如lynx, w3m),屏幕阅读器,手机浏览器等等,很多场景都限制了JS的发挥与使用。对于正常人,你可以觉得无所谓,反正现在换个或者升级浏览器也是轻而易举的事情,但是,很多障碍人士,却只有很少的选择。Web 2.0并不意味不能用。
所以我们必须采取适度降级(graceful degradation)的策略。对于一些非必须由Ajax驱动产生内容的前端页面(比如分页,提示内容的展示),我们就可以采取此策略。我们必须保证,在没有JS的情况下,这些内容可以使用传统(Web 1.0?)的方式来交互产生。这是保证Web具备亲和力的基础。有此保证后,我们就可以采取逐步增强(progressive enhancement)的策略来加入Ajax,使用JS来控制前端的交互,达到用户体验的目的。实际上,读者的疑问可能就在这,如何能够保证适度降级的基础上能逐步增强?实践证明,Unobtrusive Javascript(不冒昧的Javascript? 天,这该怎么翻译?)的思想能够帮助我们做到。何谓Unobtrusive?那就是说,在没有JS的情况下,网页内容依然能够访问(accessible)。概念很抽象,那么我们举个例子说明吧。假如网页有几块内容:
<a href="#a">Show a</a> <a href="#b">Show b</a> <a href="#c">Show c</a> <div id="a">a</div> <div id="b">b</div> <div id="c">c</div>
我们需要按照用户的点击展示每一块内容。通常的做法是,我们会给a标签加上占位符,然后写上onclick=""之类的代码,在某些div加上style="display: none;",让其在默认情况下不可见,然后再让JS操纵其可见性。这是一种不好的,非Unobtrusive的做法。
Unobtrusive的做法是,我们需要让a有意义,而不是只为JS而存在。a应该依照实际情况指向一个实际连接,或者跳到本页的一块内容。我们应该讲JS完全分离出来,不要在HTML混杂onclick之类的事件代码。而且,我们也不应该在默认情况下隐藏内容,应该在页面载入后交给JS来控制,这样,用户在没有或禁止掉JS的时候,她/他还有机会能够看到所需的内容。这是一个最简单的Unobtrusive例子。
所以,结论是,我们要建设具备亲和力的Web 2.0的网站,graceful degradation, progressive enhancement, Unobtrusive是基础。当然,某些完全依靠Ajax的网站,比如Google Maps,得另外讨论。我们可以看到,即使是Gmail,它也有一个非Ajax版本备用。当然,我的意思不是每个网站都应该开发、维护两个以上的版本,我们应该,在保证亲和力的基础上,才逐步Ajax化,而且Ajax应该是用在构建一种新的交互方式,用在用户体验上。
出处:Realazy
责任编辑:moby
上一页 Ajax,用该所用 [1] 下一页
◎进入论坛网站综合、网页制作版块参加讨论
|