我应该遵循哪些一般准则来优雅地降级基于JS的Web应用程序?有这样的指导方针吗?是否有任何公共页面可以作为好/坏的例子?有任何常见的陷阱吗?
答案 0 :(得分:5)
使用progressive enhancement创建应用程序,而不是正常降级。这意味着首先你应该让你的应用程序在没有Javascript的情况下正常工作(例如,你需要所有的链接在服务器上有相应的操作)。然后,一旦有效,您可以通过在其上添加Javascript和AJAX来增强您的应用程序。
这显然不仅适用于AJAX调用,而且适用于任何Javascript。例如,在我的一个应用程序中,我想为用户提供一种从一个范围中选择数字的方法。为此,我打算使用Javascript创建一个滑块小部件,以便用户可以将滑块移动到他们想要的数字。但是,为了让页面在没有Javascript的情况下仍然有效,我开始使用包含所有可能值的<select>
,并构建我的滑块小部件以在<select>
之上开始/工作。这样,使用Javascript可用/启用的用户将获得更丰富的体验,但不能使用Javascript的用户仍然可以完全使用该应用程序。
<强>资源:强>
答案 1 :(得分:1)
最好的策略是渐进增强,您可以创建一个网站,所有用户都可以查看所有内容,无论他们有什么浏览器或残障。这个你的css和javascript之上的那一层为那些能够利用它的人创造了更丰富的体验。
始终使用服务器端验证。这样,您的表单仍然按照您的预期方式工作,黑客更难绕过验证步骤。
答案 2 :(得分:1)
使用“web 1.0”技术构建一个没有AJAX功能的站点。然后,在JS中,增强同一站点以使用AJAX。简而言之,这是Progessive Enhancement的简短摘要。
以下是一些指示:
然后您的Javascript可用于执行一些额外的工作:
最后,你不仅拥有一个可以在没有JS的情况下运行的网站,而且还有一个可以被今天各种各样的浏览器消费的网站(移动,电子阅读器,屏幕阅读器,平板电脑) ,桌面等)。您还将拥有一个基准版本的站点,它满足了提供内容的主要关注点 - 并且能够以其他方式增强内容以定位其他平台(您可以编写移动增强版本)或使用相同的服务器-logic来自桌面小部件等)
答案 3 :(得分:1)
来源:https://www.w3.org/wiki/Graceful_degradation_versus_progressive_enhancement
优雅降级是构建您的Web功能的实践,以便它在更现代的浏览器中提供一定级别的用户体验,但它也会优雅地降低到较旧级别的用户体验旧浏览器。这个较低级别不适合您的网站访问者使用,但它仍然为他们提供了他们来到您的网站使用的基本功能;事情不会为他们打破。
渐进增强是类似的,但它反过来做事情。首先,建立所有浏览器在呈现网站时能够提供的基本用户体验级别,但您还可以构建更高级的功能,这些功能将自动提供给可以使用它的浏览器。
换句话说,优雅的降级从复杂性的现状开始,并试图修复较少的体验,而渐进式增强从一个非常基本的工作示例开始,并允许对未来环境的不断扩展。优雅地退化意味着回头看,而逐步提升意味着向前看,同时保持脚踏实地。
答案 4 :(得分:0)
所有链接都应指向可以在没有JS支持的情况下打开的真实URL。之后,您可以使用JS为AJAX请求设置onclick事件。 形式和其他事情一样。