Jon*_*ram 6 progressive-enhancement graceful-degradation
为长篇介绍道歉 - 只是试图适当地设置场景以避免模棱两可和混乱.
Web应用程序已从基于浏览器的基于服务器端逻辑的接口变为基于浏览器的完全应用程序,而对服务器端逻辑的需求最小.可以通过识别清晰的Web应用程序来描述这种演变.
让我们暂时考虑两代:ajax之前和之后.当然还有其他因素,例如与CSS支持和访问控制标题有关的因素,但让我们从简单开始.
从无风格的无JavaScript简单系统开始,添加优雅降级的增强层并使用ajax包装,高响应性的现代应用程序完成是一项具有挑战性且容易出错的任务.这绝非易事.
对于Web应用程序可能看起来属于哪一代,取决于访问应用程序的方式.如果通过Lynx和最新一代应用程序通过FireFox 3.1访问,同样的Web应用程序似乎是第一代应用程序,中间有几个级别,具体取决于用于访问应用程序的用户代理.
根据用户代理的功能创建一个优雅降级的Web应用程序的问题,其中创建的利用当前浏览器功能的东西将恢复到大约十五年前面对Lynx时创建的东西的功能,这是非常困难的.
我无法想象桌面应用程序在操作环境中会出现这种差异.
能够利用Vista中的功能的单个可执行文件(与一组特定于操作系统的变体相对)在XP下运行时以及缺少某些Vista功能时可以很好地应对.为了降低与Web应用程序相当的距离,当在仅限命令行的环境(如DOS)中运行时,相同的桌面应用程序仍然必须运行,尽管不那么花哨.
在Lynx下运行它,它是第一代Web应用程序.在FireFox 3.1下运行相同,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会认为它具有挑战性,棘手但可行.
在DOS下运行它,它是一个命令行应用程序.在Vista下运行它,它是一个花哨,闪亮的当代网络应用程序.如果遇到这样的问题,你会觉得它很疯狂.或者你呢?
桌面应用程序在操作环境中是否会像Web应用程序那样面临如此广泛的差异?
这个问题(方差的广度,而不是方差本身)是Web应用程序域所特有的,还是可以在桌面开发中找到?
在这方面,桌面应用程序不存在与 Web 应用程序相同的问题。它们通常被设计为在一个明确定义的平台上运行。
这在未来可能会改变。计算正在从台式机转向移动电话和小型笔记本电脑。未来桌面应用程序必须在更广泛的平台上运行。这可能会导致问题,因为我们用来开发桌面应用程序的大多数框架处理这个问题的能力比 Web 应用程序框架更糟糕。