我已经阅读了这两种不同的设计方法,我了解 Prog.Enhancement 和 Graceful Degradation 之间的理论差异,但是我没有得到您可以在以下链接中阅读的示例: Progressive enhancement and Graceful degradation example
他与 G.D. 创建了一个链接,通过 Javascript 打印页面。 与体育做同样的事情,但他使用“按钮”而不是“链接”。
这是与 P.E. 一起使用的代码。过程:
<p id="printthis">Thank you for your order. Please print this page for your records.</p>
<script type="text/javascript">
(function(){
if(document.getElementById){
var pt = document.getElementById('printthis');
if(pt && typeof window.print === 'function'){
var but = document.createElement('input');
but.setAttribute('type','button');
but.setAttribute('value','Print this now');
but.onclick = function(){
window.print();
};
pt.appendChild(but);
}
}
})();
</script>
他不能继续使用链接做同样的事情吗? 我的意思是即使在 P.E 中,Javascript 支持的问题仍然存在。并且完全像 G.D. 一样解决,告诉用户自己打印页面。
提前致谢
最佳答案
没有。在此示例中,没有链接。只是一个<p>
.放入正常 <a>
将意味着任何禁用 JS 的人和任何浏览器无法执行的人 window.print()
将看到一个不执行任何操作或去任何地方的链接(如果浏览器足够旧,可能会抛出一个错误框)。 UI 会明显损坏。要以另一种方式增强页面,作者可以更改 <p>
到<a>
, 但他选择了 <input type="button">
.有很多选择。
但是这个例子的重点是从一个对任何人都没有任何破坏的 UI 开始——包括禁用 JS 的用户和没有所需功能的浏览器——然后构建。这就是PE的意义所在。另一方面,GD 方法是为您的主要受众构建页面并找到隐藏错误内容的方法,因此较少的浏览器仍然可以得到一些不错的东西,而不会在整个地方看到很多错误的东西。
我知道你没有问过,但根据我个人的经验,PE 和 GD 之间的区别完全是人为的,非常 2009。其中很多与 IE6(不会死的 2001 浏览器)有关,但是移动给了它新的紧迫感。
当时移动设备被许多人视为需要特殊对待的独立系统,因此这是一个重要的问题:您是否为移动设备和桌面设备构建,然后为您的核心桌面设备用户添加功能?或者您是否为您的核心桌面用户构建网站,然后削减可能在移动设备上损坏的内容。
关于javascript - Progressive enhancement 和 Graceful degradation 例子,我不明白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35240167/