Web开发:我们还需要支持非JavaScript用户吗?

时间:2009-11-17 01:32:36

标签: javascript

背景:我正在开发一个电子商务网站。我的初衷是在常规html页面之上添加JavaScript,以便JS支持的用户获得额外的好处,但没有它的用​​户仍然可以使用基本的html表单将东西添加到他们的购物车,搜索等。 / p>

我遇到过一些情况,其中没有理智的方式以非JavaScript方式实现某些功能。

一个例子是产品页面上的链式属性选择(颜色选择根据所选尺寸而变化,因为不是所有尺寸都有每种颜色)。即使我没有使用AJAX,它仍然需要JavaScript来动态更改选项。

我能想到的唯一JavaScript替代方案是:

一个。添加到购物车“向导”,您必须在单独的页面上逐步浏览每个属性选项(哎呀!)

B中。将每个尺寸/颜色变化作为单独的产品(并强制客户趟过类别页面以找到他们想要的颜色大小组合)

...虽然无论用户是否使用JavaScript,上述两种方法都能正常工作,但他们都会通过重构页面并强制他们使用专为最低公分母设计的界面来惩罚JavaScript用户。 / p>

所以问题是,因为JavaScript在Web开发中扮演的角色比几年前要大得多,而且AJAX / JS应用程序/站点的设计模式现在与“经典”Web的设计模式有很大不同设计模式,我们是否仍然竭尽全力支持非JS用户?或者我们说:“跟你一起去吧!更新你的浏览器,打开JavaScript或去其他地方购物”?

我有兴趣看到其他开发者对此有所了解。

13 个答案:

答案 0 :(得分:15)

我认为这实际上取决于您的目标受众。我在一家拥有多种类型网站的公司工作,有些专注于你的平均玩家或玩游戏的人。我们的统计数据向我们显示,浩大这些人中的大多数都启用了javascript。

我们还有一个专注于开发人员的网站,其中许多开发人员不允许在网站上运行javascript,除非他们信任它。我已经看到该网站上多达20-30%的浏览器没有运行javascript。

所以这是非常主观的。

恕我直言,使用大量雅致的 javascript来增强其他平凡的体验是非常合理的。但是,我也认为如果可能,它应该优雅地降级。只要你在设计时就考虑到这种退化形式(在大多数情况下)并不是很难实现。

答案 1 :(得分:14)

最重要的非JavaScript用户是Google。别忘了。

答案 2 :(得分:13)

对于像Ajax这样的东西,或任何javascript,我觉得最好:

从一开始就规划Ajax;最后实现Ajax - Jeremy Keith

这意味着拦截(劫持)链接和表单使用(不引人注目的)JavaScript使您的代码在没有启用javascript的情况下降级很好。如果要显示精美的滑块,请将其设置为一个链接,告诉服务器在您重新加载页面时显示div,并告诉您的javascript在单击链接时执行不同的操作。

这些想法对于功能齐全但有趣的网站来说是最安全的选择。

答案 3 :(得分:5)

我认为支持非Javascript用户 对任何针对某种“正常”目标群体(即不是游戏玩家或技术人员)的网站都是绝对必要的。

  • 越来越多的移动设备访问并尝试解析普通内容。
  • 出于安全原因,许多公司网络仍然阻止脚本编写 - 您也不希望失去偶尔的员工购物工作。
  • Javascript往往会破坏任何可访问性的尝试。在我看来,创建尽可能易于访问的网站是对我们人类同胞的服务。

我不是说我是百合白。我讨厌复制我刚刚在我的JS框架中用静态HTML实现的功能,或者让它优雅地降级。但我认为这仍然是必须的,而不仅仅是盈利问题。这是值得投入一些额外的东西,或者做一些无偿的工作。

答案 4 :(得分:4)

如果您可以排除不使用javascript的用户,那么这将是一些移动设备,或真正的偏执狂,以及lynx用户,以及任何不使用您编写的javascript版本的用户。

如果您愿意接受,那么我建议你有一个静态的html页面,其中包含一些需要javascript的消息。

当您加载javascript并且DOM树已准备就绪时,您可以替换此消息,因此永远不会看到它与网页的其余部分。

但是,您可能希望了解如何为非JavaScript浏览器获取功能,即使数量有限。

例如,对于颜色,您可以使用可以在除旧版IE浏览器之外的所有浏览器上使用的水平下拉列表:http://www.alistapart.com/articles/horizdropdowns/

如果你想使用javascript让你的生活更简单那么这可能是一个不好的理由,但是,如果你正在做一个photoshop webapp,那么你将需要javascript。

注意我建议让它与javascript一起使用,因为电子商务网站希望不排除任何客户,我希望。

答案 5 :(得分:2)

这很大程度上取决于您的受众。正如你多年前所说的,JavaScript以不同的方式使用,甚至有点烦恼。现在有了AJAX和增强的功能,这是必须的,大多数人都开启了它。

你可以说,有Javascript禁用的人被用来填充不经常工作的东西,少数人。

但是,如果您正在构建一个旧计算机或带宽有限的人(例如外国流量)经常光顾的网站,您可能需要考虑解决这些问题。此外,移动浏览器大量访问的网站可能是另一个需要关注的网站。

查看您的分析,了解当前的使用情况,并对您的受众进行简要介绍。

答案 6 :(得分:2)

最佳答案取决于简单的比较:估算您将用于创建非JavaScript替代网站的额外资金。估算您向非支持javascript的客户销售产品的资金。相比。如果你是一个大商店,那么从最后2%或10%的用户那里获得销售可能是值得的。如果你只是一个人,也许你有更多有利可图的方式来度过你的时间。

答案 7 :(得分:2)

我找到了这个有趣且事实驱动的帖子,它可能有所帮助。 Why we should support users without Javascript。以下是摘要:

  
      
  1. 有些人选择关闭JS。
  2.   
  3. JS偶尔失败,HTML / CSS没有。
  4.   
  5. JS旨在并且应该是锦上添花,而不是糟糕的HTML / CSS的补丁工作。
  6.   

答案 8 :(得分:1)

理论上,是的;但实际上,没有。

理论上,网络精神支持具有一系列功能和配置的硬件和软件,适当地扩展网站功能。

实际上,即使是移动浏览器也会聚集在当前主流桌面浏览器所占据的最佳位置。外部用户通常可以在紧要关头切换到备用浏览器或设备。

答案 9 :(得分:0)

虽然对于电子商务网站要求Javascript似乎是合乎逻辑的,渐进的,更简单的和更有效的,但您应该问自己是否愿意放弃由非Javascript用户生成的x%的业务,并且考虑到较低的开发成本。

企业丢失的百分比可能不是非Javascript用户的百分比,因为非Javascript访问者中很小一部分可能购买商品是服务。丢失业务的百分比可能略低于非Javascript用户的百分比。

答案 10 :(得分:0)

专注于为大量受众群体提供高级功能比花时间为非JavaScript用户和使用过时平台的用户找工作更好。

答案 11 :(得分:0)

在我看来,在考虑在网站上使用JavaScript时需要考虑两件事:

  • Google是否仍能抓取所有内容
  • 如果网站的某些部分在没有JavaScript的情况下无法使用,那么请为非JavaScript用户发出非常明确的信息,为什么您的网站不适合他们

答案 12 :(得分:0)

我认为我们需要再次支持非JavaScript用户

有些用户包括我不会因为任何偏执而禁用JS,但是因为现在某些网站的JS很重,所以浏览器的速度会慢下来。最近这种情况越来越严重,所以我预计更多用户最终会这样做。我希望我的性能恢复,所以我安装了浏览器插件,让我有选择地只启用网站上绝对必要的脚本。所以我可以再打开十几个标签而不会出现性能问题。