我昨天问了一个问题,我应该为JavaScript禁用而烦恼吗?。我认为共识是:是的,我应该为JavaScript Disabled开发。现在,我只想了解为什么用户禁用JS。似乎许多开发人员(我想回答问题的人都是开发人员)都禁用了JS。这是为什么。用户为什么禁用JS?为了安全?速度?要不然是啥?
我昨天问了一个问题,我应该为JavaScript禁用而烦恼吗?。我认为共识是:是的,我应该为JavaScript Disabled开发。现在,我只想了解为什么用户禁用JS。似乎许多开发人员(我想回答问题的人都是开发人员)都禁用了JS。这是为什么。用户为什么禁用JS?为了安全?速度?要不然是啥?
Answers:
人们出于以下考虑而在浏览器环境中禁用JavaScript:
许多应用程序为了自己的利益而使用过多的JavaScript ...您是否需要始终通过AJAX调用刷新界面的一部分?当与宽带连接一起使用时,您的界面可能感觉不错且速度很快,但是当您不得不降级到较慢的连接速度时,首选更简化的界面。关闭JavaScript是防止无缘无故地阻止每15秒钟刷新一次世界的笨拙的Web应用程序的好方法。(是否查看过Facebook发送的数据量?这很吓人。这不仅是与JS相关的问题,而且是其中的一部分)。
我们还倾向于将越来越多的处理工作卸载到客户端,如果您使用简约(或刚刚过时)的硬件,它的速度将非常缓慢。
并非所有用户界面都应该以动态方式表示,并且服务器生成的内容在许多情况下可能是完全可以接受的。另外,有些人根本不想要这种类型的界面。您不能取悦所有人,但有时您有机会和责任让您的所有用户满意。
最后,有些用户有残疾,您永远都不要忽视他们!
我认为,最糟糕的情况是政府网站试图“现代化”其UI,以使其对公众更友好,但最终却留下了很大一部分目标受众。同样,当大学生无法访问他的课程内容时,这是一种遗憾:因为他/她是盲人并且其屏幕阅读器不支持该网站,或者因为该网站太笨重并且需要临时的现代插件,他/她没有安装在2年前在e-bay上购买的翻新笔记本电脑上,或者再次安装,因为他/她在春假期间回到了另一个国家,并且本地带宽限制无法应付笔记本电脑的有效负载。现场。
并非每个人都生活在一个完美的世界中。
这一点与先前的2点有关,并且在当今变得不那么重要了,因为浏览器嵌入的JavaScript引擎的效率比以前提高了一个数量级,并且这种情况一直在改善。
但是,我们无法保证所有用户都有使用现代浏览器的特权(由于公司的限制-迫使我们无缘无故地支持以前的浏览器,实际上-或其他可能有效或无效的原因)。正如“ Matthieu M.”所提到的 在评论中,您需要记住,许多人仍在使用质量较低的硬件,并且并非每个人都使用最新最酷的智能手机。截止到今天,仍然有相当一部分人使用的手机带有有限支持的嵌入式浏览器。
但是,正如我提到的,这方面的情况确实有所改善。但是,如果您保持非常定期的轮询(否则您的用户将享受不错的电话费),那么您仍然需要记住有关带宽限制的先前要点。
这都是相互关联的。
考虑到JavaScript在浏览器环境中运行,虽然您显然可以认为JavaScript并没有什么特别危险的事情,但这是完全不正确的。
您确实意识到,当您访问P.SE和SO时,如果您已登录任何其他网络,则会自动登录,对吗?里面有一些JS。虽然这仍然是无害的,但是它使用了一些恶意网站可以利用的一些概念。一个网站完全有可能使用JavaScript来收集有关您在浏览会话期间(或过去所做的)某些事情的信息(如果您不是每次退出浏览器或立即运行时都清除会话数据,则收集过去的信息)常见的隐身/私有浏览模式),然后将其上传到服务器。
最近的漏洞(当时在主要的浏览器中有效)包括收集收集的输入表单数据的能力(通过在恶意页面上为您试用组合并记录每种可能的起始字母组合的建议文本,从而可能告诉攻击者您是谁) (您可以在其中工作和生活的地方)或提取浏览历史记录和习惯(一种非常聪明的技巧,其操作很简单,例如将链接注入页面的DOM中以匹配链接的颜色并查看链接是否被访问。这在足够大的已知域名表上。浏览器处理JavaScript的速度越来越快,这种事情很快就可以解决。)
另外,请不要忘记,如果您的浏览器的安全模型存在缺陷,或者所访问的网站在受到XSS攻击时无法提供足够的保护,那么您可能会使用JavaScript来轻松利用远程网站上的打开会话。
JavaScript基本上是无害的……如果您将其用于受信任的网站。Gmail。Facebook(也许……甚至没有……)。谷歌读者。StackExchange。
但是,可以肯定,JavaScript不会那么糟糕,对吧?无论如何,网上还有一些更可怕的事情值得恐惧。如EFF的Panopticlick实验所证明的那样,就像想自己真的没那么匿名一样。使用JavaScript也可以部分完成。您甚至可以阅读他们禁用JavaScript的原因,以避免浏览器出现指纹。
综上所述,在某些很好的情况下,您无需费心支持JavaScript。但是,如果您提供公共服务网站,请考虑同时接受两种类型的客户。就我个人而言,我确实认为,使用以前的服务器生成的内容模型(客户端完全不使用JavaScript),许多现代的Web应用程序和网站也可以很好地工作,并且它仍然是很棒的,并且可能会减少很多消耗。
您的里程可能会因项目而异。
因为信任某人每天早上写一个有趣的漫画,并相信有人在我的电脑上运行任意图灵完备的代码是两个非常不同的事情。
我不是网络开发人员,并且对互联网的工作方式只有一个中等的了解。因此,这是用户的回答。
我的经验使我相信,无论是出于懒惰还是无知,许多网站的编码都是错误的:当我查看一个基本静态的网页(例如Facebook页面)时,我的CPU使用率将增加15%左右,并且大大增加有多个标签。最终到了要点,单击按钮或链接后我必须等待响应,我的CPU会过热并锁定。
在许多最严重的罪犯(场所)中,没有明显的变化,也没有互动。我只能假设该站点的代码不断进行过多的刷新,轮询和无休止的循环。
这驱使我安装NoScript以释放CPU使用率,并停止浏览而变得烦琐。
我使用的另一个很棒的插件是FlashBlock。
对我而言,这一切都与安全有关。我使用noscript允许某些网站运行javascript,而不允许大多数。
最后,您真的不知道危险在哪里(诺贝尔网站受techspot.com感染)。许多零日漏洞(和其他漏洞)都使用javascipt。封闭这条进攻路线似乎是朝正确方向迈出的一步。
我的主要原因是,它抑制了最烦人的广告。我宁愿不使用AdBlock Plus,因为这可能会影响我访问的网站的收入(并且我使用了一个或两个服务条款规定我不会禁用广告的网站)。NoScript限制了广告的潜在讨厌性,我愿意与其他广告一起生活。
还有安全方面的考虑,并且这在很大程度上还与广告有关,因为任何出售广告的网站都必须被视为具有潜在的敌意。
此外,在访问网站之前,我不一定知道网站是狡猾的。有些人喜欢发送指向站点的链接,并且不一定诚实。
因为浏览器以前的JavaScript实现速度很慢,并且太多的n00b Web设计人员只是将其用于不相关的事情,例如按钮翻转。
在具有现代浏览器的快速计算机上,没有一个头脑正常的人一直都在禁用它。但这并不是说没有很多“安全意识”强的人和其他人没有足够的资金,欲望或专门知识来在快速的计算机上运行现代的浏览器……直到最近IE6才停止互联网上最受欢迎的浏览器!