it-swarm.cn

我应该为禁用JavaScript而烦恼吗?

我应该为禁用JavaScript而烦恼吗?

我觉得我的时间最好花在大多数人身上。

103
Jiew Meng

有一种Web设计理念被称为 渐进增强 ,这是您应该考虑的一种。这个想法是您建立一个可用的和可使用的基本站点,然后分层使用这些增强功能,例如jQuery和特定于浏览器的功能,以“增强”它。这样,您将获得一个适合所有人的网站,并且对大多数人看起来不错。

如果那不能说服您,请考虑使用JavaScript进行网站工作的其他原因:

  • 它对SEO更友好。如果您的网站依靠JS的内容和链接,那么搜索引擎很可能会忽略其中的很大一部分。

  • 假设您是一个销售小部件的电子商务网站。现在,即使只有5%的客户禁用了javascript,这也可能造成5%的销售损失。失去客户值得吗?

  • 不要歧视残疾人。依靠javascript意味着您的网站不是 可访问 ,并且在某些情况下(例如政府/公共部门网站),您可能会通过歧视他人来触犯法律。

70
Dan Diplo

首先,我不同意那些坚持认为一切都应该在没有Javascript的情况下运行的人们。在很多情况下,最好使用最低公分母进行编码(例如,如果我的银行的站点需要Flash或类似的废话,我真的会很生气。)但是实际上,如今几乎每个人都启用了Javascript,如果使用得当,产生的站点可能非常壮观且有用! (我的意思是,让我们看看关闭Javascript时的尼斯Google Maps ...)

但是,这至少不能确保您在没有Javascript的情况下也无法正常浏览页面。永远不要让您的用户盯着页面半开,破损,而不会指出发生了什么问题。只是问问自己:我愿意花2分钟编写“此页面需要Javascript”消息还是每天收到10封来自用户的电子邮件,告诉我我的页面因启用了Noscript而损坏了?

47
Toji

是的你应该。

如果您认为这是需要额外努力的事情,则可能是相反的做法。

开发您的页面使其无需JavaScript就可以工作,然后添加基于JavaScript的改进,Ajax效果等。如果支持/启用JS,它们将起作用,否则您的页面将正常降级

而且,请不要在以下位置开发页面:

  1. 整个内容是通过JavaScript从数据库中提取的

  2. 标记完全崩溃了,因为元素被粘在一起并通过JavaScript而不是CSS放置在正确的位置

  3. 如果没有JavaScript,导航和正文中的链接将无法运行(除非是ASP.NET之类的框架,该框架出于某种原因依赖JavaScript)

这恰恰违背了网络精神和常识。

附言由NoScript用户说出。

39
user8685

作为开发人员,我不再担心1%的用户关闭Javascript。这太浪费时间了,开发时间也太昂贵了,以至于无法浪费这些废话。 AJAX节省了大量带宽,直接变成$$美元的节省,这使利润增加了。如果我每100个用户失去一个或两个潜在的网站用户,则失去的一两个人用户的开发成本将比他们带来的潜在收入高得多。

尝试关闭Javascript并登录Facebook,之后它变成一个非常破烂的网站。如果对Facebook足够好,对我也足够。

33
Robert

我个人在浏览时使用 NoScripts Firefox插件,并鼓励其他人使用它。在我维护的所有家用PC上,NoScripts是我安装的软件的必需位之一。我用基本电子邮件和银行网站以及受欢迎的社交和视频网站的白名单进行了设置,并向他们解释了临时许可的工作方式。从该插件的流行程度来看,我认为有很多人使用它。

至少我希望导航功能可以在没有脚本的情况下正常工作。如果您有一些特定的东西,例如视频,需要脚本,那么可以,但是显示一个不错的占位符,上面写着“观看此视频需要脚本”。

但是,使导航依赖脚本是一个大错误。在许多情况下,这会让我厌恶地离开该站点。更大的错误是,禁用脚本后,部分网站或导航会完全消失。除非您强调缺少某些东西的事实,否则我什至没有发现一个很好的机会,所以会让您的网站以为它不存在。另外,全屏显示“此站点需要脚本”的消息不会使您走得太远,我需要先了解一些级别的内容,然后才能对脚本足够信任。

最后,不要忘记浏览站点的不仅是台式机,而且移动浏览器越来越受欢迎。尽管对移动JavaScript的支持越来越好,但它并不是完美无缺的,因此,除非您要对所有不同的移动浏览器进行大量测试,否则我建议您几乎不用脚本来搜索页面的移动版本。

11
Simon P Stevens

取决于站点和将使用它的人。

该站点是公共站点还是Intranet站点或仅对某些客户可用的站点?您可能会遇到没有JavaScript的用户。如果仅由客户端使用,您能否告诉他们您仅支持启用JavaScript?

是SEO的考虑因素还是整个网站都位于登录屏幕或SEO后面?如果没有JavaScript,为搜索引擎进行优化要容易得多。

该网站是否会在移动浏览器上使用?移动浏览器通常不支持JavaScript或不支持JavaScript。

您还应该意识到,JavaScript可能会使屏幕阅读器难以处理您的网站,并且还有其他潜在的负面可访问性注意事项。

基于文本的浏览器(例如lynx)的用户也几乎没有JavaScript支持。

您必须查看您的站点和受众,并确定是否需要支持禁用JavaScript的用户。您还必须查看是否甚至可以不使用JavaScript。如果您要制作高级Web应用程序,并且需要网络摄像头和麦克风支持之类的东西,那么可能不使用JavaScript是不可能的。

如果您决定需要支持没有JavaScript的用户,那么仍然可以使用JavaScript。您应该使没有它的网站仍然可以正常运行。这称为渐进增强,如果不支持JavaScript,则应适当降级。

如果您决定需要JavaScript,则应通知用户(使用<noscript>标签)。

9
Adam

我可以推荐“ A List Apart”中的文章吗?

使用JavaScript的渐进增强

...我们已经审查了在JavaScript中实现渐进增强功能所需的心态以及实现该功能的几种技术。我们还谈到了不干扰脚本的概念,并了解了一些如何管理CSS和JavaScript的相互关系的知识。

当您将通用方法与该文章与JQuery(或Prototype,或您选择的任何JavaScript框架)之类的有用工具结合使用时,在事后应用JavaScript行为确实很简单。

有几种类型的浏览器仍然没有JavaScript或至少非常有限的JavaScript支持。更不用说WCAG和第508条合规性的第1条规则(非美国人群可及性)是视线不依赖于功能。如果每次进行更改时都会重新加载页面,但是它仍然允许我进行更改,因此它可以正常工作。基础站点顶部的AJAX层使我可以在不重新加载页面的情况下执行相同的操作。

我看到不支持JavaScript用户的主要原因如下:

  • 支持残疾人(屏幕阅读器,备用输入设备等)
  • 支持具有安全意识的人员:让我们面对现实,这是有坏人使用JavaScript做令人发指的事情,因此最简单的解决方案是摆脱JavaScript
  • 这是在没有插件的情况下禁用广告的最简单方法
  • 移动和嵌入式设备
  • 用于在无头服务器上下载工具的命令行浏览器
  • 搜索引擎蜘蛛仅遵循真实链接-JavaScript使它们混乱

请,如果您要在网站上使用Cookie和JavaScript使其具有功能,请进行尽职调查,以避免出现以下问题以下:

  • 跨站点脚本攻击
  • 第三方用户跟踪
  • 通过DOM操作进行黑客入侵
  • 网络钓鱼(如果脚本可以访问您的DOM,则它可以将页面上的任何信息发送到从其加载的服务器)

(那只是简短列表)

如果解决方案不是那么困难,为什么不这样做呢?

同样,在您的JavaScript庆典上,别忘了支持合理的键盘导航。

8
Berin Loritsch

绝对

如果没有JavaScript,无法正常运行的网站应明确通知用户。在没有JavaScript的情况下,应尽可能使其正常工作。在某些情况下这是不可能的,基于AJAX如果我禁用了JavaScript。

平稳降级非常重要,它不仅适用于JavaScript,还适用于您编写的所有代码。有效的HTML标记,有效的CSS,所有内容的服务器端验证。

8
Josh K

在这样的网站上,您会发现许多开发人员告诉您他们如何禁用Javascript,因此您应该支持渐进式增强。实际上,有5%的人禁用了Javascript,其中90%是开发人员和其他技术极客,他们不是普通大众。大多数主要站点不支持渐进增强。您是否尝试过不使用Javascript的Facebook?他们基本上说走开。

4
Craig

<5%的用户禁用了javascript

根据 BrowserStatistics ,在2008年,只有5%的用户关闭了JavaScript。趋势一直在下降,因此可以非常安全地假设现在接近2011年,这个数字要小得多。

逐步降级

您的网站应该从不损坏-无论用户是否打开或关闭JS。即使只是显示显示您的网站需要打开javascript的消息那样简单,您也应该确保您的网站对于那些选择的网站而言,呈现并表现为可接受的,不间断的方式。

是否适合非JS用户?通常:否

普通开发人员无需使用其他语言创建非JavaScript版本。但是,如果知道您的客户有反JavaScript需求,那么您显然会被迫迎合它。 (甚至GMail都没有JS版本)

3
rlb.usa

我的想法:

使用javascript总是会增加攻击的范围,不仅对您,而且对您的客户-我认识的几乎每个人都使用NoScript浏览,其中包括非技术人员。

如果我看到一个在线购物网站严重使用javascript,则不会从其中购买。我总是先禁用JavaScript进行浏览,如果网站正常降级,我可能会感兴趣。如果只是坏了,我通常会假设程序员也没有能力提供安全的商店平台。

它趋向于减慢一切-尽管离大城市很近,但我的宽带足够慢,而不必等待加载一些营销思路。如果网站加载基本内容的时间超过5秒钟,那么除非有真正的需求,否则我不会打扰。

1
Rory Alsop

仅用于关键任务功能

通常,“优雅地降级”是一个好主意。但是,我将只专注于Web应用程序的关键任务部分,以解决JavaScript可能不可用的情况。

如果只是“钟声和口哨声”的效果,那就不要打扰。故意使用JavaScript进行冲浪的人将不得不做一个简单的体验(嘿,这是他们不使用Js的选择)

1
Darknight

这里的大多数答案似乎都以非必要或hacky的方式突出了对使用JavaScript的标准网站的批评。但是网络应用程序呢?如果没有JavaScript,有很多关键功能甚至无法远程实现。即使是像文本区域下的基本Word计数器一样简单的事情,也可以基于另一个答案的启用/禁用其他形式的问题。在这种情况下,为多数人建立并为少数人优雅地降级是否不合理?特别是如果您知道您的用户群是非技术用户并且不太可能禁用JS?

1
Jordan

注意事项:

AFAIK,搜索引擎蜘蛛不喜欢Javascript。您应该仅具有SEO的基本内容和导航,而无需使用Javascript。

出于法律原因或公司政策,某些网站可能有残疾人访问规则。通常最好用简单的HTML而不是Java来实现。

尽管当今大多数人都在使用Javascript冲浪,但这并不是对未来的保证。网络变得越来越具有敌意,并且NoScript之类的工具可能会变得越来越流行。或者,可能会有更多的人使用浏览器功能较弱的设备,尽管有些Android)手机价格相对便宜,这似乎不太可能。优美的降级效果可能是该站点未来发展的一种方式。

0
David Thornley

是。

我不会谈论使用NoScript,嵌入式设备等的人。可以衡量他们的份额,然后您可以确定收入是否因烦人而减少,例如0.5%的用户值得为他们实施解决方案。

但是还有其他遵循循序渐进增强原理的原因,它们通常更为重要。

  1. 100%用户无法在脚本加载前执行javascript。如果站点可以在没有js的情况下运行,则可以为首次访问者,缓存为空的访问者以及js代码更新后的所有访问者更快地加载。

  2. 无需js即可运行的网站更加可靠。破坏网站的Javascript错误是体系结构的噩梦。有关此问题和相关问题的更多信息: http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

  3. 坚持实施渐进增强功能比实施SEO友好的纯JavaScript网站要容易得多。

  4. 为不需要javascript的网站编写自动化测试会更容易。

遵循渐进增强原则实际上很容易,那么为什么不遵循它呢?

0
Mike Korobov

取决于单个问题的答案:

“支持禁用Javascript的用户的成本是否大于或小于因不支持这些用户而造成的损失?”

假设您的网站在需要重建之前的使用寿命为3年,为“富客户”的构建成本为30,000英镑,而您再增加10,000英镑以支持非javascript用户(我们假设其中有5%的)

如果缺少的5%的用户将花费超过10,000英镑-那就这样做。如果他们不这样做,除非法律要求您不要这样做。

与技术决策相比,这更多是业务/经济决策。

0
PhonicUK