在没有JavaScript的情况下优雅降级仍然有用吗?

时间:2009-08-12 16:13:31

标签: javascript graceful-degradation

即使移动浏览器都有JavaScript,是否真的有必要考虑潜在的无脚本用户?

15 个答案:

答案 0 :(得分:17)

是。您的网页不仅仅是由人们使用:它们被搜索引擎,爬虫和屏幕分析器使用。大多数自动工具不支持Javascript,基本上没有人会生成UI事件或查看深层嵌套的AJAX数据。你希望有一个简单的静态HTML回退,如果没有别的,那么你的网页很好地被搜索引擎索引。

忘记禁用Javascript的疯子;想到机器人!

答案 1 :(得分:13)

人们可以(并且确实)使用禁用的JavaScript进行浏览。如果您的网站无需用户明确为您启用javascript就可以使用,这会让他们感到高兴。

当然,具体的相关程度取决于您的目标受众。

答案 2 :(得分:11)

我认为,由于以下原因,您不应该非常不适合非JS用户:

  • 所有现代浏览器支持JS

    这是浏览器使用情况的快照 今天:

    http://www.w3schools.com/browsers/browsers_stats.asp

    即使是最古老的常见浏览器,IE6, 支持基本的JavaScript和AJAX。 如果你决定不整合 JS的某些特征b / c 依赖,这证明你是 基本上是为那些人做的 从启用JavaScript开始 明确选择禁用它。一世 认为这些人应该期待 一些功能,甚至可能 整个网站,而不是作为一个 结果

  • 很少有人愿意停用JS

    基于我的观点,平均而言 网络用户不知道或不关心 可以在浏览器中禁用JS。 它主要是一个技术精明的人群 知道怎么做(我自己 包括),作为技术精明的用户,我们应该知道什么时候 把它重新打开。

  • 支持费用

    鉴于上述情况,请考虑一下 选择容纳有用户 主要是心甘情愿地禁用JS来 非常实际的成本。如果你是 管理一个沉重的大型项目 UI要求,可以轻松刻录 很多开发人员的时间 适应什么是非常的 小用户偏好。检查你的 预算。如果它需要2个开发者 在项目上每个工作40个小时 要完成这一壮举,你就是 容易烧几千 基本上是美元 对绝大多数人来说都不是问题 你的用户。那个时候怎么样 和投资进一步增加 你的核心竞争力?

  • 优先级

    我可能在这方面错了,但是 我觉得很难找到 主要媒体或社交网站 有些人不依赖JavaScript 他们的部分功能 工作。如果主要业务依赖 关于。的操作和可访问性 他们的网站留在商业不是 这样做,这是一个很好的机会 因为不需要它。

CAVEATS:

了解您的市场。继续构建语义的XHTML / CSS(最好使用RDFa W3C推荐)。仍努力让视障人士可以访问您的网站。不要相信你读过的一切。 ;)

免责声明:

我上面的论点在很大程度上取决于你如何定义“优雅退化”。如果你的意思是所有的链接仍然有用,那就是一件事,但如果你的意思是所有的链接仍然有效,那么袋熊游戏也是如此,那就是另一个。我并不想争论让你的网站如此依赖JS,非JS用户无法访问它的任何部分。我试图争论某些功能的可接受性,甚至一些核心功能,依赖于JS。

答案 3 :(得分:6)

这是相关的,即使在10到20年之后,javascript可能在任何地方都得到支持,它也是相关的。让事情在没有javascript的情况下工作是一项重要的开发技术,因为它会迫使你保持简单和declarative。理想情况下,javascript只应用于增强体验,但您的网站不应该依赖它。

从维护的角度来看,明显的优势在于,大多数代码都采用声明性格式(html + css),并且在命令式(javascript)中尽可能少。

答案 4 :(得分:4)

我的位置:

我使用NoScript浏览,所以如果我进入您的网站,它将没有Javascript的好处。我不希望有完整的用户体验。

在开启JS之前,我想要的是确保你有足够的能力,而不是恶意,而且我真的想要你正在使用JS。

这意味着,如果您确实希望我使用您的网站,您应该允许我使用链接环顾四周。 (如果我看到一个没有Javascript就完全无用的网站,我通常会认为设计师不称职。)你应该让我知道从启用Javascript后会得到什么样的功能,你应该以合法的方式展示网站

我认为这不是太多问题。

答案 5 :(得分:3)

优雅的降级/渐进增强/ unobstusive javascript绝对相关!

与所有可访问性问题一样:想象一下在外面不能使用该页面的那一天是什么样的。

想象一下,你在世界各地旅行,你在一些酒店或网吧,有很旧的电脑,旧软件,旧浏览器,你想查找你的航班,你会发现你不能因为一些javascript您正在使用的旧浏览器中的不兼容性。 (尝试'旧手机'或'在公司防火墙后面'用于不同的场景)

通过屏幕阅读器和网络,为盲人提供一个可能的世界,并想象一下,由于javascript,这些可能性再次被关闭了。

非常吸引你的大自然。

您可能也想这样做 使您的网站可以访问搜索引擎。

答案 6 :(得分:3)

是的,它是相关的。目前正在使用的移动浏览器 都启用了Javascript。当然,它可以在新手机上使用。但是有数以百万计的人喜欢我,他们的手机运行旧版浏览器,而对于我们所有人来说,JS所需的浏览体验都很明显。

我甚至不打扰那些在编码时没有逐步增强的访问网站。我在技术上并不落后于时代。我的手机已经有一年了。但由于网络体验瘫痪,我不会重新签订合同并购买新手机。

答案 7 :(得分:2)

这取决于您的目标受众是谁。我默认关闭JavaScript,当我知道网站的意图是什么时打开它。

答案 8 :(得分:2)

使用Javascript禁用浏览通常要快得多(digg.com是没有JS的闪电),这就是它受欢迎的原因。

在Opera中,它非常简单:只需按F12并取消选中javascript选项即可。我总是浏览没有Flash,Java(不是javascript),动画图像和声音。我在每个网站上启用Flash,例如YouTube。如果我的系统速度变慢,有时我会暂时关闭JS。

不要忘记:

  • 屏幕阅读器(我认为它们大部分都禁用了JS)
  • 文本浏览器或其他非常旧的系统
  • 广告拦截器(如果您的文件名发生在他们的雷达下)
  • 任何不支持JS的旧浏览器或JS中断(例如IE6不支持某些现代JS的东西)。

解决方案是使用渐进增强而不是优雅降级,即从基本HTML开始并添加CSS。然后将Javascript和/或AJAX添加到网站的某些部分。

例如,如果你有像Stack Overflow这样的网站,那么投票给答案可以正常提交表格。如果启用了JS,它将执行AJAX请求,更新投票计数并取消表单提交,而无需离开页面。所以虽然不这样做......

答案 9 :(得分:2)

我总是打开NoScript,除非我信任该网站的原因有很多,包括跨网站脚本,点击顶进和HTML注入。这不是我的偏执,这是因为我认识很多开发人员,并且知道他们中的大多数人都不知道网络安全是什么,更不用说如何避免漏洞。

所以,直到我相信一个网站,我才有可能让它做任何花哨的事情。

对于不熟悉的人,有一些有趣的博客文章:

答案 10 :(得分:1)

我将不得不在这里为另一方提出诉讼。人们在没有javascript设计网站的原因很大程度上是理想主义的。如果有足够的时间和金钱,目标是可以实现的,并且肯定会为尽可能多的人开放您的网站。但实际上这样做会减慢您的开发速度,增加您必须处理的测试用例数量,并最终影响那些使用javascript的用户的应用程序质量。

在我看来,选择让您的网站仅与支持js的浏览器兼容并告诉那些没有它的用​​户他们错过了是完全合理的。这使您可以专注于创建大多数用户将能够查看的丰富内容。

此规则当然有例外,但如果您希望为大多数用户创建一个好的网站,或者让客户在一个时间紧迫或资金有限的华而不实的网站之后,那么就做出决定js启用的浏览器只是一个合理的事情。

答案 11 :(得分:0)

真正的问题不在于它是否相关,而在于是否使用优雅降级或渐进增强作为您的脚本策略。

答案 12 :(得分:0)

当谈到JS的优雅降级时,我实际上处于一个有趣的位置。我正在开发一个网络应用程序,机器人和爬虫完全没有业务调查。没有什么可以解释应该被编入索引。

然而,Web应用程序附带的信息站点应该被编入索引,因此JS会在那里优雅地降级。

在Web应用程序中,如果您没有启用JavaScript,那么您可能不应该在那里。它旨在成为丰富的互动体验。 Web应用程序实际上需要启用JS,并且不要让您坐在公司防火墙后面。

我们不会提供任何恶意软件,它只是我们对Web应用程序的意图和目的不同。我们的Web应用程序和我们的信息站点的目标完全不同。

答案 13 :(得分:0)

我使用JavaScript。我始终保持浏览器为最新。但是有时候,我的Internet连接非常糟糕,脚本无法加载。

在某些情况下,

  • 某些脚本会加载,但其他脚本会失败,在这种情况下,网站的某些部分会停止运行
  • 脚本正在加载中,但是我想点击“提交”而不等待那个漂亮的折叠菜单
  • 脚本失灵,因为脚本已部分加载,然后在该半阶段缓存
  • 我很着急,所以我决定使用Lynx。

现在,我并不是说我的互联网一直在坏,甚至在大多数情况下都是坏的,但这确实发生了。随着Internet迅速扩展到世界各地的许多农村地区,我敢肯定我并不是唯一的一个。因此,除了上面的Nelson mentioned这样的机器人外,还有另一件事要牢记。 (提示:检查您的受众特征)。

答案 14 :(得分:-1)

如果您不希望页面在Javascript关闭时工作,那么只需将其作为html中的消息,并且如果启用了javascript,则通过使用不显眼的javascript,您可以删除该消息并使其余部分可见申请。

根据您所写的内容,就javascript版本而言,如果用户拥有的浏览器没有最新版本,您可能需要降级,因此优雅地处理这一点也很重要。