什么时候可以使用Javascript,什么时候不可以?

时间:2010-05-27 04:25:11

标签: javascript css xhtml accessibility screen-readers

不使用多少javascript / jquery是不错的做法?我们应该尽可能地避免它(为了获得良好的可访问性)吗?

何时可以使用JavaScript,何时不在网页设计和开发中?在什么情况下以及在什么条件下?

更新

我在问公共网站。

12 个答案:

答案 0 :(得分:22)

我必须恭敬地不同意那些说你不应该使用JavaScript,或者谨慎使用它,或者让它优雅地降级的海报。

原因是现在绝大多数人都启用了JavaScript,并欣赏它可以从网站提供的类似桌面的体验。真的,谁没有启用JavaScript?人们表现得好像这是一个具有统计意义的群体。事实并非如此。

不使用JavaScript有点像对可变大小的挑剔(哦,我可以在这里使用16位整数而不是32位来节省一些内存)。除非你为成千上万的人做一些怪物项目,你花费在网站上优雅地降低时间的投资回报率实际上是正面的,你应该随意使用JavaScript。因为禁用它而无法访问它的两个人是偏执狂,可能不是那种你想要的客户。

只需2美分。

答案 1 :(得分:12)

专家先生说,

+1。

还要补充一点:有利于您的网站的关键功能依赖于JavaScript的可访问性。如果在用户的浏览器中禁用了JS,他们仍然可以提交所有表单,单击所有按钮,等等。 在没有JavaScript的情况下,您的网站必须优雅地降级。

表格的一个注释:
尽可能使用Hijax方法提交表单。使用传统的页面刷新使它们工作,然后使用JavaScript“劫持”表单提交,而不是使用AJAX。如果客户端禁用了AJAX,表单仍然可以正常工作。

答案 2 :(得分:6)

在我说什么之前,让我说清楚所有这些都是相对的 - 它完全是关于你的目标听众。如果您的大多数目标受众是非洲的残疾人,而我的目标受众是韩国的游戏玩家,那么答案可能就在频谱的两端。

首先,查看目标受众中已启用JS和已禁用JS的比率。对于普通网站,它是100:1。

其次,考虑带宽。 jQuery缩小和gzip是24K。但是所有浏览器都能正常使用gzip压缩内容吗?选择正确的UI框架或根据目标受众的带宽选择是否使用一个。如果您的目标受众是具有大量使用宽带计划的年轻人,那么如果框架的大小为兆字节,他们就不会抱怨。但是,如果您的网站针对某些国家的偏远村庄进行救援或教育计划,那么就要避免使用这些框架 - 他们几乎无法访问互联网。

第三,对于可访问性,有两件事是重要的:

  1. 任何人都应该能够查看/收听/了解您网站上的内容。
  2. 任何人都应该执行您网站中的所有重要功能。
  3. 一旦你使用最小分母技术为你的目标受众照顾这些技术,你总是可以使用javascript来完善事物并增强现有的基本功能(自动完成,AJAX提交等等)

    总结一下,优雅地降级。

    除了可访问性之外,我不同意在有人禁用JS的情况下我们应该优雅地降级!

    对于使用浏览器的桌面,说当人们没有启用javascript时,您的网站应该优雅地降级就像说您的游戏引擎应该优雅地降级到DirectX 6,因为有些人使用Windows 95。。没有意义了。请注意一词。当JavaScript仅存在于50%的浏览器中并且它是一种新兴技术时,它才有意义。

    任何人都有充分理由说我的3D游戏应该能够优雅地降级并使用DirectX 6吗?它没有实际意义。有意义的是,我的游戏在Windows 7上使用DirectX 11但优雅地降级并在Vista中使用DX10甚至在XP中使用DX9。

    来吧..看一些统计数据。 JS启用禁用率如100:1

    如果80%的观众在移动设备中使用即将推出的浏览器来查看您的网站,那么整个事情就会发生变化。

    如果您的大部分目标受众/设备都启用了JS,请使用它。如果他们没有,那就不要了。你只需要给他们他们可以使用和看到的东西。

    总会有少数人,但是如果有一个先决条件来看一个网站并且相当普遍,他们应该安装/启用它,否则它对他们来说太糟糕了。你当然不希望你的目标受众偏执狂。

    当天结束时,只有您将获得有助于您决定使用JavaScript的数量的信息。它始终由您的目标受众及其设备决定。

答案 3 :(得分:3)

如果您正在开发一个简单的网站,那么您应该只使用JavaScript来增强用户体验,并且对于那些没有启用它的人来说,它应该会优雅地降级。如果您的网站是以内容为中心的,那么您应该如何对待它:内容优先,基于JavaScript的铃声和口哨。如果没有启用JavaScript,不应该只有一个必需的功能。

然而,如果您正在制作网络应用,那么请坚持下去。 Web应用程序假设使用JavaScript,因此无法满足那些禁用它的用户;如果他们真的想要使用你的产品,他们将启用JavaScript(或使用差异设备)。如果没有启用JavaScript,它的工作就不值得了。这就像争辩说你不应该给你的视频游戏好图形,因为低端计算机将无法运行它:真正想玩你的视频游戏的人将升级他们的机器。

答案 4 :(得分:2)

mhr的答案,“只要它优雅地降低”,这是一个很好的基线。我想补充一点,可以在Javascript提供应用程序功能(您的站点是“Web应用程序”而不是纯粹的信息)的情况下进行合理的例外处理,这些例外没有服务器端等价物。因此,例如,“优雅降级”作为一项规则不应该阻止您构建基于Web的绘图工具(如果它优雅地降级为窗体和服务器端功能,那将至多是非常繁重的)。但是,它应该阻止您要求Javascript访问该绘图工具发布给内容创建者以外的其他任何内容的任何内容(因为内容创建者,不言而喻,已经接受了他们使用网站所需的Javascript )。

答案 5 :(得分:1)

尊重J. Nielsen先生:设计中的保守主义在进化和进步方面可能毫无意义。当闪存首次出现时(使用动作脚本的第一个版本,真正的外卖编程),在动画界面上产生了很多嘈杂光泽,其中大多数几乎不可能在可用性方面运行。但事实是,形成所有这些未来实验,在UI方面出现了一些质的改进。

随着javascript发生了类似的事情:即使是超越表示层来处理一些业务逻辑,仅仅是小部件变得越来越流行:RIA(富互联网应用程序)逐渐依赖于javascript来提供用户体验。 使用或不使用javascript?

我认为,在一个不断发展的全新世界中,每一个旨在提高可用性和互动的工具都是受欢迎的,而这种工具的形状,方向或仅仅是一个简单的计划在下面是太过分了。

其他人在这里说的是完全正确的:不值得考虑仍然禁用javascript的一两个,因为如果你的计算机发臭并且他们不断拉动图形的限制,游戏制作人不会太在意。多亏了这一点,我们不再玩PACMAN(只有谷歌想要),我们才能享受刺客信条。

答案 6 :(得分:1)

NASA是一个很好的例子,说明如何不在公共网站中使用JavaScript - 它们似乎使用JS来提供特定于浏览器的样式表,从而导致JS被禁用时出现问题。

答案 7 :(得分:0)

JavaScript的主要用途是编写嵌入HTML页面或包含在HTML页面中的函数,并与页面的文档对象模型(DOM)进行交互。这种用法的一些简单示例是:

  1. 打开或弹出一个新窗口,对新窗口的大小,位置和属性进行编程控制。

  2. 验证网络表单输入值,以确保在将它们提交到服务器之前接受它们。

  3. 当鼠标光标移过图像时更改图像:此效果通常用于将用户的注意力吸引到显示为图形元素的重要链接。

  4. 由于JavaScript代码可以在用户的​​浏览器(而不是远程服务器)上本地运行,因此它可以快速响应用户操作,使应用程序感觉更具响应性。

答案 8 :(得分:0)

在公共网站上,只要您的网站所包含的信息仍然可用,并且可用性对于没有JS的人来说仍然有用,就可以使用JavaScript。

如果您处于公司内部网等更受控制的环境中,您可以更多地依赖JavaScript。

此外,如果您的网站更像是一个应用程序而不是文档,如果没有JS,它的功能是不可能的,您当然可以使用它。

您也可以接受这样的事实,即有些人在使用您的网站时会遇到问题,但无论如何都要严重依赖JS。那是你的选择。

答案 9 :(得分:0)

使用javascript,我们可以与用户建立客户/服务器关系,因为我们可以使用他们的CPU功能来构建页面并从我们的服务器中释放一些资源。我们提供代码和数据,他们的浏览器将它们放在一起,它应该是应有的。 :)

此致 巴巴克

答案 10 :(得分:0)

我不同意你的观点,即不要经常使用java-script和jquery。 现在一天的浏览器与javascript兼容。如果你需要开发一个需要验证的网站,你必须更喜欢javascript(用于客户端验证)。

答案 11 :(得分:0)

如果仅出于以下原因,您的网站应该优雅地降级:NoScript。 Firefox扩展依赖于白名单以允许站点运行Javascript。这意味着我之前从未访问过的网站将不允许运行Javascript。这是防止大量网络钓鱼攻击和跨站点脚本(XSS)攻击的好方法。

网站必须首先获得我的信任。是的,Ebay和亚马逊可能在很大程度上依赖于Javascript,但像www.buyviagracheap.com这样的网站可能不会。

如果在禁用Javascript的情况下,您无需显示任何内容,我会快速按下“返回”,然后再说“但......”,并且永远不会回来。

但是,如果我喜欢我看到的内容,我可以为您的网站启用Javascript并改善我的体验。因此,在禁用Javascript的情况下,无需提供完整的替代功能。