我正在构建一个视频共享CMS,它使用大量的jQuery和ajax来处理从丰富的UI效果到提交和从数据库检索数据的所有内容。当JavaScript被禁用时,一切都会崩溃,90%的功能都不起作用。
我开始认为,对于某些类型的网站,例如使用Flash播放器流式播放主要内容 - 视频的网站,我们不会优雅地降级。因此,如果无法查看网站的主要内容,那么在其他所有内容上实现双重支持的重点是什么。即使YouTube打破了JS禁用。
我打算在开源许可下发布CMS,所以问题是:
对于大规模分发(以及对于这种类型的网站而言)是不是优雅地降级好主意?
答案 0 :(得分:3)
只要您向用户说明他们需要启用JS,就可以在没有JS的情况下“分崩离析”。但是,如果你没有表明它不应该没有JS,那么人们会生气。现在大多数人都希望网站在其功能的某些方面需要JS。
对于像视频一样复杂的CMS,如果他们不启用JS,则是用户错误。如果没有JS,他们不应该期望这样的工作,即使他们这样做,也可能不值得花时间维护你的网站的两个版本:JS和非JS,特别是对于开源的东西。
答案 1 :(得分:2)
看到你的应用程序依赖于javascript的全部目的,你不可能优雅地降级。只要您的网站明确告诉用户启用javascript以获取所有令人敬畏的功能,并且可能在不同的浏览器中有关于如何执行此操作的链接,您应该没问题。 :d
答案 2 :(得分:2)
您实际上是在选择受众群体。这与决定是否支持IE6没有什么不同。这不是对错,它只是一个问题,即你愿意失去多少百分比的观众,以换取你最终的发展方便。
尽管如此,我发现progressive enhancement(优雅降级为outcome)是一种有效且更安全的开发方式。首先执行HTML,使其工作,然后将JS添加为糖。
您的某个用户不可能没有运行Javascript。什么 可能,为我的卑微自我说话,是你会有一些小JS错误杀死一切。 (JS倾向于停止异常,您可能已经注意到了。)
很高兴知道,如果出现此类错误,您的用户仍然可以使用该网站。在我看来,这就是优雅的退化。
答案 3 :(得分:1)
优雅降级并不意味着“一切都在每个浏览器中完全运行”,这意味着“如果您的浏览器无法处理某些内容,您会看到一些明智而不是破碎的垃圾”。
在您的情况下,只是检测到网站无法正常工作并显示一个很好的错误页面来解释所需的内容将是一种可接受的优雅降级形式。
答案 4 :(得分:0)
如果你是一个完美主义者,那么让没有JS的人知道发生了什么是没有错,而不是让网站破裂。以下是快速操作方法:How to detect if JavaScript is disabled?。