it-swarm.cn

人们为什么禁用JavaScript?

昨天我问了一个问题 我应该为JavaScript禁用而烦恼吗? 。我认为共识是:是的,我应该为JavaScript Disabled开发。现在,我只想了解为什么用户禁用JS。似乎许多开发人员(我想回答问题的人都是开发人员)都禁用了JS。这是为什么。用户为什么禁用JS?为了安全?速度?要不然是啥?

60
Jiew Meng

人们出于以下考虑而在浏览器环境中禁用JavaScript:

  • 速度和带宽
  • 可用性和可访问性
  • 平台支援
  • 安全

速度和带宽

很多应用程序为了自己的利益而使用过多的JavaScript ...您是否需要始终通过AJAX=)调用来刷新界面的某些部分?用于宽带连接,但是当您不得不降级到较慢的连接速度时,最好使用更简化的界面,并且关闭JavaScript是防止每15秒左右刷新一次愚蠢的网络应用的好方法。没有充分的理由(是否曾经查看过Facebook发送的数据量?这很可怕。这不仅是与JS有关的问题,而且是其中的一部分)。

我们还倾向于将越来越多的处理工作卸载到客户端,如果您使用简约(或刚刚过时)的硬件,它的速度将非常缓慢。

可用性和可访问性

并非所有用户界面都应该以动态方式表示,并且服务器生成的内容在许多情况下可能是完全可以接受的。另外,有些人根本不想要这种类型的界面。您不能取悦所有人,但有时您有机会和责任让所有用户满意。

最后,有些用户有残疾,并且您永远都不要忽略他们

我认为,最糟糕的情况是政府网站试图“现代化”其UI,以使其对公众更友好,但最终却留下了很大一部分目标受众。同样,当大学生无法访问他的课程内容时,这是一种遗憾:因为他/她是盲人并且其屏幕阅读器不支持该网站,或者因为该网站太笨重并且需要临时的现代插件,他/她没有安装在2年前在e-bay上购买的翻新笔记本电脑上,或者再次安装,因为他/她在春假期间回到了另一个国家,并且本地带宽限制无法应付笔记本电脑的有效负载。现场。

并非每个人都生活在一个完美的世界中。

平台支援

这一点与之前的2点有关,并且在当今变得不那么重要了,因为浏览器嵌入了JavaScript引擎,这些引擎的效率比以前提高了一个数量级,并且这种情况越来越好。

但是,不能保证您所有的用户都有使用现代浏览器的特权(由于公司的限制-迫使我们无缘无故地支持传统的浏览器,实际上-或其他可能有效或无效的原因)。正如“ Matthieu M.”所提到的在评论中,您需要记住,许多人仍在使用质量较低的硬件,并且并非每个人都使用最新最酷的智能手机。截止到今天,仍然有很大一部分人使用的手机带有有限支持的嵌入式浏览器。

但是,正如我提到的,这方面的情况确实有所改善。但是,如果您保持非常定期的轮询(否则您的用户将享受不错的电话费),那么您仍然需要记住有关带宽限制的先前要点。

这都是相互关联的。

安全

考虑到JavaScript在浏览器环境中运行,虽然您显然可以认为JavaScript并不能做任何特别危险的事情,但这是完全不正确的。

您确实意识到,当您访问P.SE并SO)时,如果您已登录任何其他网络,则会自动登录,对吗?里面有一些JS。尽管如此,这仍然是无害的,但它使用了一些恶意网站可以利用的概念。网站完全有可能使用JavaScript来收集有关您在浏览会话中(或过去的浏览器)所做的某些事情的信息。每次退出浏览器或广泛运行现在常见的隐身/私有浏览模式时,清除会话数据),然后将其上传到服务器。

最近的漏洞(当时在主要的浏览器中有效)包括 收集您保存的输入表单数据 的功能(通过在恶意页面上为您试用组合并记录每次可能出现的建议文本)字母组合, 可能告诉攻击者您是谁,您在哪里工作和居住 )或 提取您的浏览历史记录 和习惯( 非常聪明hack做一些简单的事情,例如将链接注入页面的DOM中以匹配链接的颜色,然后查看它是否已被访问 。您只需要在足够大的已知域名表上执行此操作,然后您的浏览器在处理JavaScript方面变得越来越快,这种事情很快就完成了。)

另外,请不要忘记,如果您的浏览器的安全模型存在缺陷,或者您访问的网站在受到XSS攻击时无法提供足够的保护,那么您可能会使用JavaScript来轻松利用远程网站上的打开的会话。

JavaScript基本上是无害的……如果您将其用于受信任的网站。 Gmail。 Facebook(也许...甚至没有...)。谷歌读者。 StackExchange。

但是,可以肯定,JavaScript不会那么糟糕,对吧?无论如何,网上还有一些更可怕的事情值得恐惧。 就像您真的没那么想像自己一样匿名 ,如 Panopticlick[〜#〜]的实验所示eff [〜#〜] 。使用JavaScript也可以部分完成。您甚至可以阅读其 原因以禁用JavaScript,以避免浏览器指纹


综上所述,在某些非常好的情况下,您无需费心支持JavaScript。但是,如果您提供公共服务网站,请考虑同时接受两种类型的客户。就我个人而言,我确实认为,许多现代的Web应用程序和网站使用以前由服务器生成的内容模型(在客户端完全不使用JavaScript)也可以很好地工作,并且它仍然是很棒的,并且可能会减少很多消耗。

您的里程可能会因项目而异。

81
haylem

因为信任某人每天早上写一个有趣的漫画,并信任某人在我的计算机上运行任意的图灵完整代码是两件事非常

46
Jörg W Mittag

我不是网络开发人员,并且对互联网的工作方式只有一个中等的了解。因此,这是ser的答案。

我的经验使我相信,无论是出于懒惰还是无知,许多网站的编码都是错误的:当我查看一个基本的static网页(例如Facebook页面)时,我的CPU使用率将增加一些例如15%,使用多个标签的数量则更多。最终到了要点,单击按钮或链接后我必须等待响应,我的CPU会过热并锁死。

在许多最严重的罪犯(场所)中,没有明显的变化,也没有互动。我只能假设该站点的代码不断进行过多的刷新,轮询和无休止的循环。

这驱使我安装 NoScript 以释放我的CPU使用率,并停止浏览成为令人沮丧的琐事。

我使用的另一个很棒的插件是 FlashBlock

16
Mark C

我出于速度原因禁用JS。不使用JavaScript的TechCrunch需要花费几秒钟的时间来加载已准备好的缓存。使用JavaScript大约需要20秒,如果不准备缓存,则需要更多时间。

JavaScript使得很多网站变得肿,特别是图像画廊和商业网站。删除此选项可以在大多数情况下为您带来更好的浏览体验。

10
Josh K

对我而言,这一切都与安全有关。我使用noscript允许某些网站运行javascript,而不允许大多数网站。

最后,您真的永远不知道危险在哪里( 感染了techspot.com的诺贝尔网站 )。许多零日漏洞(和其他漏洞)都使用javascipt。封闭这条进攻路线似乎是朝正确方向迈出的一步。

8
kasterma

我的主要原因是,它抑制了最烦人的广告。我宁愿不使用AdBlock Plus,因为这可能会影响我访问的网站的收入(并且我在一个或两个服务条款规定我不会禁用广告的网站上使用过)。 NoScript限制了广告的潜在讨厌性,我愿意与其他广告一起生活。

还有安全方面的考虑,并且这在很大程度上还与广告有关,因为任何出售广告的网站都必须被视为具有潜在的敌意。

此外,在访问网站之前,我不一定知道该网站是狡猾的。有些人喜欢发送指向站点的链接,并且不一定诚实。

7
David Thornley

因为浏览器以前的JavaScript实现速度很慢,并且太多的n00b Web设计人员只是将其用于不相关的事情,例如按钮翻转。

在具有现代浏览器的快速计算机上,没有一个头脑正常的人会一直禁用它。这并不是说没有很多“安全意识”强的人和其他人没有足够的资金,欲望或知识来在快速的计算机上运行现代的浏览器...直到最近IE6才停止互联网上最受欢迎的浏览器!

4
Kevin Cantu

激活Javascript后,任何网站都可以在我的计算机上执行代码。我什至不知道特定的网站是否执行代码及其作用。更糟糕的是,其他人可能在我不知情的情况下将代码插入到通常无害的网站(XSS)中。最近,一个著名的德国计算机杂志未发表文章,当时只有16岁,他尝试了德国最常见的银行的在线银行网站。他们中的许多人-包括最大的人-都容易受到XSS的攻击。而且,您甚至没有注意到,您的在线银行站点执行的Javascript会发生变化,例如,交易的目标和金额。使用禁用的Javascript,在受信任站点的上下文中进行XSS攻击是没有用的,我不会执行恶意代码。

2
Mnementh