Entries Tagged ‘graceful-degradation’:

优雅兼容之理想与现实

infinte 总是能给我们带来一些新思路新想法:更优雅的兼容

很不错的思路。不过实际操作时,并不好组织。比如:getOffset (获取 elem 相对 page 的偏移量)方法,对于高级浏览器,直接 getBoundingClientRect + win.scrollLeft/Top 即可。对于低级浏览器,比如 Safari 2, 得利用 offsetParent 不断向上回溯叠加。至此,利用文中提及的优雅兼容,可构造:

nullDriver = {};
dhtmlDriver = derive(nullDriver);
w3cDriver = derive(dhtmlDriver);

if(supportsGetBoundingClientRect) {
    w3cDriver.getOffset = function() { ... }
} else {
    dhtmlDriver.getOffset = function() { ... }
}

看起来很美妙,可是问题不这么简单。w3cDriver.getOffset 里,依旧还有浏览器差异,比如在同是 webkit, 桌面版和 ipad 版是有差异的,并且郁闷的是,这个差异不大,就那么一两行代码。传统写法:

w3cDriver.getOffset = function() {
    ...
    if(isAppleMobileWebkit) { // bug fix }
    else { // go on }
    ...
}

按照优雅思路,上面的代码很 ugly, 一个可能的重构: 阅读全文 »

Tags: ,

理解渐进增强(Progressive Enhancement)

原文:Understanding Progressive Enhancement
作者:Aaron Gustafson
翻译:http://lifesinger.org/

从1994年开始,Web开发社区就敲响了优雅降级(Graceful Degradation)的鼓声。这个概念来自工程世界,其核心理念是给最新最强大的浏览器全套餐式的体验,而给那些不幸还在使用Netscape 4的可怜人们只留些残羹冷炙般的基本功能。毫无疑问,这发挥了作用。但是它并不很符合Tim Berners-Lee(译注:万维网之父)关于普遍可访问性网络(Universally Accessible Web)的原始愿景。

大约10年后,一些聪明的家伙开始质疑优雅降级,发现它在很多层面上有不足之处。他们将精力集中在内容可用性(Content Availability)、总体可访问性(Overall Accessibility)和移动设备浏览器的能力上,寻找到了一条Web开发的新途径——此方法将内容作为关注焦点,而不只是对旧设备的支持嘴上说说却没有实际行动。

在2003年的SXSW会议(译注:一个关于电影、音乐和交互的会议)中,Steve Champeon和Nick Finck做了名为 “面向未来的全方位Web设计” 的演讲。这样,他们揭示了这种Web开发新方法的蓝图。Steve还给它取了个名称:渐进增强(Progressive Enhancement)。

这里有个(微妙的)差别

如果你挠着头想弄清楚优雅降级和渐进增强的区别,我告诉你,这是视角问题。优雅降级和渐进增强都考虑网站在各种设备的各种浏览器上如何良好运转。两者区别的关键在于它们各自关注的焦点,以及这种关注对工作流程的影响 阅读全文 »

Tags: , , ,