繁体   English   中英

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

[英]Web Development: Do we still need to support non-javascript users?

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

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

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

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

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

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

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

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

我有兴趣看到其他开发者对此的看法。

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

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

所以这是非常主观的。

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

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

谈到像Ajax这样的东西,或者任何javascript,我觉得最好:

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

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

对于功能齐全但有趣的网站而言,这些想法是您最安全的选择。

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

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

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

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

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

当你的javascript被加载,并且DOM树已准备就绪,那么你可以替换这个消息,所以它永远不会被网页的其余部分看到。

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

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

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

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

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

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

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

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

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

我找到了这个有趣且事实驱动的帖子,它可能有所帮助。 为什么我们应该支持没有Javascript的用户 以下是摘要:

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

理论上,是的; 但在实践中,没有。

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

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

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

业务损失的百分比可能不是非Javascript用户的百分比,因为较少比例的非Javascript访问者可能购买商品是服务。 丢失业务的百分比可能会略低于非Javascript用户的百分比。

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

在我看来,在考虑在网站上使用JavaScript时,你必须考虑两件事:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM