6

我正在构建一个视频共享 CMS,它使用大量 jQuery 和 ajax 来处理从丰富的 UI 效果到向数据库提交和检索数据的所有内容。当 JavaScript 被禁用时,一切都崩溃了,90% 的功能都不起作用。

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

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

对于大规模分发(以及此类站点),优雅地降级不是一个好主意吗?

4

5 回答 5

3

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

对于像带有视频的 CMS 这样复杂的东西,如果他们不启用 JS,那是用户的错。他们不应该期望在没有 JS 的情况下也能完成类似的工作,即使他们这样做了,也可能不值得您花时间维护网站的两个版本:JS 和非 JS,尤其是对于开源的东西。

于 2010-09-18T17:11:19.973 回答
2

由于您的应用程序的整个目的都依赖于 javascript,因此您不可能优雅地降级。只要您的网站清楚地告诉用户启用 javascript 以获取所有令人敬畏的功能,也许还有一些关于如何在不同浏览器中执行此操作的链接,您应该没问题。:D

于 2010-09-18T17:14:11.293 回答
2

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

也就是说,我发现渐进式增强(其中的优雅降级是一种结果)是一种有效且更安全的开发方式。先做 HTML,让它工作,然后在上面添加 JS 作为糖。

您的一位用户不太可能没有运行 Javascript。就我谦逊的自己而言,可能你会遇到一些小的 JS 错误,这会杀死一切。(您可能已经注意到,JS 往往只在异常时停止。)

很高兴知道,如果出现此类错误,您的用户仍然可以使用该网站。在我看来,这就是优雅降级的目的。

于 2010-09-18T17:41:04.600 回答
1

优雅降级并不意味着“一切都在每个浏览器中完全运行”,它意味着“如果您的浏览器无法处理某些事情,您会看到一些合理的东西而不是破碎的垃圾”。

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

于 2010-09-18T17:40:51.557 回答
0

如果你是一个完美主义者,那么让没有 JS 的人知道发生了什么并没有错,而不是让网站崩溃。这是一个快速操作方法:如何检测 JavaScript 是否被禁用?.

于 2010-09-18T17:19:06.023 回答