Javascript 有时不优雅地降级可以吗?

Javascript 有时不优雅地降级可以吗?,javascript,jquery,ajax,graceful-degradation,Javascript,Jquery,Ajax,Graceful Degradation,我正在构建一个视频共享CMS,它使用了大量的jQuery和ajax,从丰富的UI效果到向数据库提交和检索数据。当禁用JavaScript时,一切都会崩溃,90%的功能无法工作 我开始认为,对于某些类型的网站,比如使用flash播放器来播放主要内容(视频)的网站,不优雅地降级是可以的。那么,如果无法查看网站的主要内容,那么竭尽全力在其他所有内容上实现双重支持又有什么意义呢。甚至YouTube在禁用JS的情况下也会中断 我计划在开源许可下发布CMS,所以问题是: 对于大规模发布(以及这种类型的站点)

我正在构建一个视频共享CMS,它使用了大量的jQuery和ajax,从丰富的UI效果到向数据库提交和检索数据。当禁用JavaScript时,一切都会崩溃,90%的功能无法工作

我开始认为,对于某些类型的网站,比如使用flash播放器来播放主要内容(视频)的网站,不优雅地降级是可以的。那么,如果无法查看网站的主要内容,那么竭尽全力在其他所有内容上实现双重支持又有什么意义呢。甚至YouTube在禁用JS的情况下也会中断

我计划在开源许可下发布CMS,所以问题是:


对于大规模发布(以及这种类型的站点)来说,这不是一个好主意吗?

只要您向用户明确他们需要启用JS,那么在没有JS的情况下,它就可以“崩溃”。然而,如果你没有指出没有JS它就不能工作,那么人们会生气。现在大多数人都希望网站在某些功能方面需要JS


对于像带有视频的CMS这样复杂的东西,如果用户不启用JS,那就是他们的错。如果没有JS,他们不应该期望这样的工作,即使他们这样做了,也不值得你花时间维护两个版本的站点:JS和非JS,特别是对于开源的东西。

鉴于你的应用程序完全依赖javascript,你不可能优雅地降级。只要您的站点清楚地告诉用户启用javascript以获得您所有的优秀功能,以及关于如何在不同浏览器中实现这些功能的一些链接,您就应该可以了D

如果你是一个完美主义者,让没有JS的人知道发生了什么事,而不是让网站崩溃,这没有什么错。这里有一个快速的操作方法:。

优雅的降级并不意味着“每个浏览器中的一切都能正常工作”,它意味着“如果你的浏览器不能处理某些东西,你会看到一些合理的东西,而不是破烂的垃圾”


在您的情况下,简单地检测站点将无法工作,并显示一个不错的错误页面来解释所需内容,这将是一种可接受的优雅降级形式。

您本质上是在选择一个受众。这与决定是否支持IE6没有什么不同。这不是对与错,这只是一个你愿意失去多少观众的问题,以换取你的发展的便利

这就是说,我发现(优雅的退化是一种)是一种高效和安全的发展方式。首先做HTML,让它工作,然后在上面添加JS作为糖

您的某个用户不可能没有运行Javascript。就我谦逊的自我而言,很可能你会犯一些小错误,这会毁掉一切。(您可能已经注意到,JS倾向于在出现异常时停止。)

很高兴知道,如果发生这样的错误,您的用户仍然可以使用该站点。在我看来,这就是优雅降级的目的。

+1表示“只要你向用户明确他们需要启用JS,它在没有JS的情况下“崩溃”是可以的。”对我来说,这是一个优雅的失败。而且,导致一切失败的小错误甚至可能不是你的错。有各种各样的过滤代理、伪造的安全软件和浏览器附加组件,它们可能会破坏页面内容,可能导致JS功能崩溃。