it-swarm.cn

优雅降级JavaScript有多重要?

Web开发人员是否应该继续努力用JavaScript逐步增强我们的Web应用程序,以确保功能正常降级,从而确保可访问性?还是我们应该花时间专注于新功能或其他开发领域?

该问题的潜台词是:有多少客户/客户/用户在禁用JavaScript的情况下使用我们的网站或应用程序?您是否有任何项目要求特别要求JavaScript功能(几乎是我的全部要求),并且这些要求是否也要求正常降级?

为了提出这个问题,我在未启用JavaScript的情况下调出了developers.stackexchange.com,并收到以下消息:“程序员-Stack Exchange在启用JavaScript的情况下效果最佳”。尽管该站点通常可以正常工作,但登录非常困难。 (我无法投票解决任何问题。)

我认为这是令人满意的发展方法。想象一下,使网站的所有功能都可以与普通的旧HTML和服务器端逻辑一起使用时所付出的努力。另一方面,我想知道有多少用户被这种方法疏远了。

我们所有人(至少是我们当中优秀的开发人员)都经过培训,可以使用逐步增强功能,并确保我们的Web应用程序的动态功能正常降级。是这种渐进式增强只是随风而上,还是我们的某些客户实际上在未启用JavaScript的情况下利用某些Web服务?

89
Stephen

我使用 NoScript ,但将我实际上打算使用的任何站点列入白名单。

当您安装NoScript时,JavaScript,Java,Flash Silverlight和其他可能的可执行内容会默认情况下被阻止。您将能够allow JavaScript/Java/...在您信任的站点上执行..。如果您只是随机浏览或永久浏览,当您经常访问它并且您真的信任它时,可以允许该站点临时运行脚本。这意味着NoScript会从您自己的浏览器习惯中学习,并且趋于在一段时间后在后台消失,但是如果您偶然发现恶意网页,它会立即回来以节省您的时间。

当您浏览包含被阻止脚本的站点时,会显示一条类似于弹出窗口阻止程序发出的通知。
查看它或查看状态栏图标,了解当前的NoScript权限...

http://noscript.net/noscript/ss0.png

52
John Straka

我猜没有打开JavaScript的人的比例可以忽略不计。但是要小心搜索引擎机器人!他们通常不使用JavaScript,但是您不希望他们因此而跳过一些重要内容,对吧?

93
Mladen Jablanović

自从网络浏览器问世以来,我一直在启用JavaScript的情况下进行浏览。

我从来没有遇到过一个值得贬低我的浏览器体验的问题。也许有一些弹出窗口或其他烦人的地方,但我认为带来的好处远大于带来的风险。

47
JohnFx

在Linux上使用控制台时,有时在GUI不可用时使用 Lynx 。据我所知,lynx完全不支持JavaScript。

我还使用了较旧的移动浏览器,但对JavaScript的支持不佳。

但是,在这种情况下,我不希望从该站点获得完整的可用性。我通常只是在使用互联网快速查找内容(例如获取电话号码)。因此,我认为您网站的非JavaScript界面​​应仅限于被动引用角色。 Stack Exchange是一个很好的例子,您可以查找答案,但不能投票。它只是用作参考。

23
Adam

当我不在家里或办公室时,我会定期从智能手机的网络浏览器浏览网络。虽然它支持JavaScript(至少是其中的一个子集),但并不总是能够很好地处理它。我发现许多网站无法使用,因为它们消耗了很多资源,或者只是崩溃了浏览器。

我更喜欢内置浏览器,但是我会保留两个备用浏览器,以防其中一个做得更好。

17
Kenneth Cochran

如果您的脚本中断,会发生什么,这个线程中没有提到的一件事。在许多情况下,可能无法在页面上进一步执行脚本,因此需要一种回退到更简单的导航方式的方法。

脚本可能由于各种原因而中断,但最明显的原因是对.js文件的请求未完成,各种附加组件可能会更改DOM( AdBlock 等)或引入了不好的对象命名空间。

这与人们明确禁用脚本或其他无关。顺便说一句,许多现代路由器,防火墙软件等通常具有从网站禁用/过滤脚本,Flash等的功能,因此它甚至可能在网络层上进行配置,从而使用户不知道这一点(请考虑一下)。公共咖啡馆,学校或其他偏执狂已经配置了Internet访问权限的其他环境)。

通常,这是开发至少以网站的基本功能(布局和导航)正常降级的网站的主要论据。

13
jishi

我禁用JavaScript的唯一一件事就是测试自己的网站。但是,您可能对 study 感兴趣,因为Yahoo这样做了,发现1-2%的用户禁用了JavaScript。雅虎的受众群体可以很好地代表普通用户。

研究的关键语录:

尽管2%的美国游客看起来并不多,但请记住,超过3亿用户访问了Yahoo!每个月的首页。这意味着每月有600万用户访问而没有使用JavaScript。因此,尽管值得花时间在启用JavaScript的网站上,但仍然有大量用户无法使用它。

12
VirtuosiMedia

我一直都使用 NoScript 以及 AdBlock Plus

当今的网络充满敌意(侵入性JavaScript +令人讨厌的广告),因此无法不受保护地出门。

7
user8685

当然,您在这里得到的样本确实很偏斜,您可能最好在自己的网站上进行自己的研究。

我个人使用NoScript。我很少愿意将网站列入白名单,但是这样做确实值得。 (换句话说,我需要一个理由,但不一定要很有说服力。)

6
David Thornley

只需阅读 实用程序员“ HTML5和CSS3” 。作者说有5%的用户关闭了JavaScript。

这是他的消息来源: 欧盟和美国JavaScript禁用索引号+ Web Analytics数据收集的影响

JavaScript禁用索引号

欧盟:1.4%
US:3.05%

资料来源:使用IndexTools跨多个行业网站进行的1.000.000.000访问。
(VisualRevenue.com/blog-Dennis R. Mortensen)

http://visualrevenue.com/media/uploaded_images/JavaScript-Disabled-735171.JPG

看来百分比也在下降。

5
Peter Turner

还是我们中的某些人实际上在未启用JavaScript的情况下利用某些 Web服务

是。

我的浏览分为三类。

普通浏览-在Safari上或Chrome(Mac OS X)
-iGoogle,Stack Overflow和一些博客

(特殊网站:-Firefox,带有NoScript,AdBlock Plus和FlashBlock
使用不必要的JavaScript的网站。 (如果重要的话,一些印度网站会播放宝莱坞电影/音乐。不必要的繁重脚本-页面本身每隔5分钟就会重新加载一次)

移动浏览:
我以前有诺基亚5310。现在我有一台更老的索尼爱立信W700i。我在旅行时使用它进行浏览(Opera Mini很好)。这是(缺少)JavaScript的地方。我不想与该站点进行交互(主要是),只需阅读即可。大部分站点仍然不可能进行查看。

5
Nivas

我倾向于安装NoScript,并且仅安装我信任的白名单站点。否则,我会在需要时对特定域使用“暂时允许”。

这只是很好的安全性。否则,您将允许在计算机上运行任意数量的代码!即使是沙盒,也总是存在漏洞。

除了我自己的习惯外,即使大多数人确实使用JavaScript浏览,开发具有渐进式增强功能的网站仍然很有用。如果您的网站在基线时可以正常运行,则可以为最大的受众群体服务。这也意味着您将数据与视觉设计和业务逻辑分开。无论如何,您在客户端使用JavaScript所做的大部分工作都应该在服务器端进行-客户端应该只是为站点用户提供了便利。

当然,有一些例外情况需要JavaScript,但通常会有一种期望。例如,期望为游戏 BioLab Disaster 启用JavaScript,但对于A List Apart等网站都没有启用JavaScript ,大部分只是文字。

当我填写表格时,真的应该期望我启用了JavaScript来提交表格吗?为什么?这样JavaScript代码可以检查以确保我没有输入数字而不是字母?

4
pbdiode

在我看来,可访问性几乎胜过其他所有事情。依赖辅助技术的用户应该始终能够获得网站的大部分功能,即使可能需要更长的时间。有多少用户依赖它无关紧要。我很高兴为一个开放源代码Web项目编写代码,其中可访问性是主要焦点之一,并且我实际上学习了如何使事情有两种方式发生-使用和不使用JavaScript。 (以及其他许多与可访问性相关的问题,因为是否使用JavaScript实际上只是问题的一小部分。)

有一个有趣的调查表,回答了我刚才提到的项目用户的答案,即他们使用的是 此处 。您可能会感兴趣。

3
pyvi

我使用Google Chrome + AdBlock Plus,并且已启用JavaScript。

编辑:我现在使用 NotScript 。 :)

Chrome ALONE几乎阻止了所有弹出式窗口(我只发现了一个闯过一次的网站[Chess.com]),而AdBlock摆脱了所有广告,因此我对此没有任何问题。

IMO,JavaScript为您提供了整体“更好的体验”,只要您访问值得信赖的网站(尚未被黑客入侵...),就可以了。作为“计算机专家” /开发人员,我相信我们应该有非常敏锐的“互联网意识”,并且能够判断一个站点是否是恶意的。

3
Mateen Ulhaq

Windows Server上的Java禁用了Java 默认情况下。我们的IT策略阻止了这么多站点,读取某些内容的唯一方法是在默认情况下禁用JS的服务器上浏览。

尽管这不是我的首选配置,但这有时还是我要做的。

3
goodguys_activate

嗯,现在我感觉就像 Omega Man 。 :)显然,我是last确实打开JavaScript(和cookie)的人off。 (除非我需要特定的站点,例如Stack Overflow。)

我怀疑我是否会错过很多东西-通常当我do开启网站的JavaScript时,它做的事情totalally毫无用处,例如让我吐出大量的个人信息陌生人,或者向我展示一些移动的广告-就是我想要的,在我试图集中精力阅读文章时,屏幕上出现了一些随机移动...

2
Cyclops

我做。一直使用NoScript。我将在对浏览器进行沙箱操作时退出,而不是在此之前退出。

2
Satanicpuppy

我刚刚在AskUbuntu.com上回答了一个问题-我不得不(暂时-目前)在网站上启用JavaScript。我使用NoScript并在我认为很明确的时候为网站启用JavaScript-但直到那时。默认情况下,对于我以前未访问过的网站,JavaScript是关闭的。

2
Jonathan Leffler

人们一直在谈论这个决定,就好像它是二进制的一样。您可以优雅地降级,也可以不降级。相反,您为什么不考虑为每个功能优雅降级的成本与收益?例如,您可以确保该网站具有基本功能,但仍需要Javascript才能使某人使用特定功能。

还请记住,许多禁用Java脚本的人都是这样做的因为他们想使用一个精简的,精简的网站,只包含基本知识。您可能会花费所有时间使钟声为那些特别想避免它们的用户服务。

人们抱怨要优雅地降级是很多工作。如果您抱怨它有多少工作量,那么您可能正在开发一项值得使用Javascript的功能。

我认为没有Javascript的用户应该总是能够浏览该网站,使用联系页面以及阅读您拥有的任何文章或博客文章。对于任何更复杂的功能,请根据工作与收益进行判断。

2
lala

网站的策略和规划是针对具体情况。也就是说,一个网站根本不需要支持IE)浏览器,更不用说考虑诸如CSS3的border-radius之类的小问题了,但是其他网站可能甚至需要向后兼容IE6。

我们如何了解我们必须为网站计划的内容?部分是根据我们的经验。以程序员和开发人员为目标的网站可以确保其用户使用全新的,更新的浏览器,并且几乎启用了所有功能。但是,新闻网站应该认为,来自地球某个未知地点的人可以连接到他们的网站,以查看正在通过其国家/地区的内部消息。

但是,除了我们的经验和直觉之外,我们还需要在我们的网站上安装某种analytics服务,以便我们根据统计数据做出更明智的决策。例如,谷歌分析是一个非常好的工具。从那里,您可以查看是否确实需要支持较旧的浏览器。

但是,如果我们要遵循W3C的Web Accessibility Guidelines,那么我们绝对应该支持很多事情,而无需考虑特定于站点的情况。

在您的特殊情况下,我说no。我们可以放心地忘记中小型网站中的无脚本。但是对于较大的项目,在页面中包含更多标记并不是一个坏主意。

1
Saeed Neamati

如果您的网站可以供残疾人使用,则最好确保对JavaScript进行备份。

1
nkassis

我只用它来浏览Pr0n(邻居不好!);-)

我放弃尝试将其关闭以进行常规浏览,因为问题太多了。有时我什至不知道它坏了,直到我重新打开它。

1
nate c

不要忘记饼干。我认为Cookie比JavaScript更危险。我曾经是NoScript用户,但是为了将Cookie网站列入白名单,我将其关闭。

0
Brad Clawsie

我无法确定此线程上的某些答案是搞笑还是严肃:cookie比javascript更危险?大声笑

任何网站都应在js和cookie均关闭的情况下进行测试,但这是最低要求。

0
wildpeaks

我一直都在使用JavaScript。我也总是有我的最低限度的恢复工具。

我们需要禁用JavaScript的否决权,因此我可以说“没有警报,没有重定向,没有网络套接字”。从控制台和各种检查器来看,该功能至少在 WebKit 中。

但是,是的,始终启用JavaScript。主要是因为很快人们就会使用Web套接字来破坏各种弊端,就像Flash获得“酷”虚拟机时发生的情况一样。然后,我将关闭JavaScript。如果他们让我当然可以。

我想尽我所能。因此,我对这个时代有一些愉快的回忆。我想给我留下深刻的印象,也想对JavaScript的傻瓜感到高兴,因为我真的很想念我们在2007年所拥有的东西,自由的甜蜜信息流(如泉水)到处都是开源。

除非必须,否则我不会将其关闭。

0
chiggsy

从实时CD/DVD(物理上或在VM中)引导使我对允许Flash和JavaScript执行任务感觉更好。如果我没记错的话,Linux Mint 开箱即用了Flash支持。

至于网站开发,我通常会在JavaScript中进行合理的div交换和菜单操作,但是我会尝试使所有内容看起来都正确,并且基本上可以与CSS一起使用。

0
RobotHumans

仅在客户端明确要求时

除非您有大量用户受到影响,否则这只是额外的工作。

0
Darknight