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

Web开发:我们还需要支持非javascript用户吗?,javascript,Javascript,背景:我在一家电子商务网站工作。我的初衷是在常规html页面上添加JavaScript,这样有JS支持的用户就可以获得额外的好处,但没有JS支持的用户仍然可以使用基本的html表单将内容添加到购物车、搜索等 不过,我也遇到过一些情况,在这些情况下,根本没有一种明智的方法以非JavaScript的方式实现某些功能 一个例子是产品页面上的链接属性选择(其中颜色选择根据选择的大小而变化,因为并非所有大小都有每种颜色)。即使我没有使用AJAX,它仍然需要JavaScript来动态更改选项 我能想到的Ja

背景:我在一家电子商务网站工作。我的初衷是在常规html页面上添加JavaScript,这样有JS支持的用户就可以获得额外的好处,但没有JS支持的用户仍然可以使用基本的html表单将内容添加到购物车、搜索等

不过,我也遇到过一些情况,在这些情况下,根本没有一种明智的方法以非JavaScript的方式实现某些功能

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

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

有一个添加到购物车的“向导”,你必须在一个单独的页面上逐步完成每个属性的选择(恶心!)

B.将每个尺寸/颜色变化作为一个单独的产品发布(并强制客户浏览分类页面以找到他们想要的颜色-尺寸组合)

…尽管无论用户是否打开了JavaScript,上述两种方法都会起作用,但它们都会通过重新构造页面并迫使JavaScript用户使用为最低公分母设计的界面来惩罚JavaScript用户

所以问题是,由于JavaScript在web开发中的作用比几年前大得多,而且AJAX/JS应用程序/站点的设计模式现在与“经典”web设计模式大不相同,所以我们是否仍会不遗余力地支持非JS用户?或者我们会说,“见鬼去吧!更新你的浏览器,打开JavaScript或者去别处购物”


我很想看看其他开发者对此的看法。

我认为这取决于你的目标受众。我在一家拥有多种网站的公司工作,其中一些网站关注的是喜欢游戏的avg男性或女性。我们的统计数据显示,绝大多数人都启用了javascript

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

所以这是非常主观的


我的意思是,使用大量有品味的javascript来增强一种平淡无奇的体验是非常合理的。然而,我也认为,如果可能,它应该优雅地降级。这种形式的退化并不难实现(在大多数情况下),只要你在设计时考虑它。

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

如果您愿意这样做,那么我建议您使用一个静态html页面,其中包含一些需要javascript的消息

当您的javascript被加载,并且DOM树已经准备好,那么您就可以用网页的其余部分替换此消息,这样它就永远不会被看到

但是,您可能希望了解如何获得非javascript浏览器的功能,即使功能有限

例如,对于颜色,您可以使用水平下拉列表,该下拉列表可以在除旧版IE浏览器外的所有浏览器上使用:

如果你想使用javascript简化你的生活,那么这可能是一个不好的理由,但是,如果你在做PhotoshopWebApp,那么你将需要javascript


注意我建议使用或不使用javascript,因为我认为电子商务网站不会排斥任何客户。

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

您可以说,禁用Javascript的人习惯于使用不正常工作的东西,而这只是少数人

然而,如果你正在建设一个经常被旧电脑或有限带宽的人(如国外交通)所频繁使用的网站,你可能会考虑在他们周围工作。另外,一个被手机浏览器频繁访问的网站可能是另一个值得关注的网站


看看你的分析,看看目前的使用情况是什么,并对你的受众进行分析,以真正了解情况

最好的答案取决于一个简单的比较:估计创建非javascript替代站点所需的额外费用。估计向未启用javascript的客户销售产品的收入。比较一下。如果你是一家大型商店,那么从最后2%或10%的用户那里获得销售额可能是值得的。如果你只是一个人,也许你有更有利可图的方式来消磨时间。

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

  • 越来越多的移动设备访问并试图解析正常内容
  • 许多公司网络出于安全原因仍然阻止脚本编写——你也不想失去偶尔在工作中购物的员工
  • Javascript倾向于破坏任何可访问性的尝试。在我看来,创建尽可能容易访问的网站是对我们人类同胞的一种服务

我不是说我是莉莉·怀特。我讨厌在静态HTML中复制我刚刚设法在JS框架中实现的功能,或者让它优雅地降级。但我认为这仍然是必须的,而不仅仅是盈利能力的问题。这是值得额外投资或投入一些无报酬的工作的东西。

当涉及到Ajax或任何javascript之类的东西时,我认为最好:

从一开始就计划Ajax;实施