假设我的访问者启用了javascript是否合理?

时间:2008-09-30 23:46:46

标签: javascript

我知道服务器端验证绝对必须防止恶意用户(或者只是选择禁用javascript的用户)绕过客户端验证。但这主要是为了保护您的应用程序,而不是为运行浏览器禁用javascript的用户提供价值。假设访问者启用了javascript并且只为那些没有启用javascript的网站提供了无法使用的网站,这是否合理呢?

26 个答案:

答案 0 :(得分:34)

我在Firefox中浏览NoScript,当我得到不起作用的页面时,它总是让我烦恼。那就是 - 了解你的观众。如果您正在尝试迎合偏执的计算机安全专业人员 - 假设他们可能没有启用JavaScript。如果您是普通观众,可能会使用JavaScript。

答案 1 :(得分:14)

完全取决于你的目标。

如果您的网站或应用是针对Intranet的,您可以做出很多假设。如果您的目标受众是最前沿的社交网络类型,您可以假设JavaScript可以正常运行。如果您预计会有很多偏执狂系统管理员类型,您可以假设他们中的一些会尝试访问lynx中的网站,或者出于“安全原因”将JS关闭。

这方面的一个很好的例子是亚马逊 - 他们的方法是由他们的业务目标驱动的。他们是一个大众市场网站,但对他们来说,锁定旧/无能力浏览器中的用户意味着潜在的销售损失,因此他们在非脚本回退上努力工作。

因此,就像很多这类问题一样,答案不仅仅是回归你所读到的关于可访问性或渐进增强的内容。真正的答案是“它取决于。”

答案 2 :(得分:11)

我认为还有另一个原因促使你在没有JS的情况下支持至少一些主要功能 - 我们现在很多人都在浏览移动设备和PDA,这些设备没有相同的JavaScript支持。

答案 3 :(得分:10)

http://www.w3schools.com/browsers/browsers_stats.asp

他们声称95%的用户都使用了Javascript。

答案 4 :(得分:9)

Duplicate

至少有一个类别的答案肯定是“不”。如果您为政府工作,必须确保使用屏幕阅读器的人可以访问该网站。

答案 5 :(得分:6)

  

假设访客是否合理   已启用javascript并且简单   有一个无法使用的网站,为那些谁   不?

实际上有两个问题,答案是:是的,假设访问者启用了javascript是合理的。并且,不,这并不意味着其他人应该留下无法使用的网站。

渐进式增强是要走的路。让您的网站在没有javascript的情况下可用,然后添加铃声和口哨声。

对于客户端验证,用户可以避免不必要的往返服务器(应该执行真正的验证)。

答案 6 :(得分:4)

我使用firefox中的NoScript插件浏览,我对那些甚至没有考虑过让他们的网站降级的开发人员感到惊讶。

永远不要假设用户禁用了JavaScript - 特别是因为它可能并不总是他们的错。许多企业都有阻止JavaScript / ActiveX等的防火墙。在这种情况下,<noscript>元素不起作用,所以我也不建议使用它!

除非您要创建一个完整的Web应用程序,这将是90%的Ajax,否则您必须确保遵守标准并通过各种交互层逐步增强您的网站。

另外不要忘记对象检测的重要性,特别是随着手机网页浏览的兴起。最流行的移动Web浏览器之一(Opera mini 4.0)不允许所有“后台javaScript”工作,Ajax调用很少正确执行......只是要注意的事情。

说实话,我厌倦了认为每个人都会启用JS的开发人员!什么无知!!

答案 7 :(得分:2)

是的。但是,如果只是谷歌,那么通过常规的HTML和网址尽可能多地展示它。

答案 8 :(得分:2)

无障碍,是的......功能性?不是真的。

这实际上是一个客户需求问题,而不是开发人员 - 负责任的问题,但如果您的客户试图强制要求非JS浏览器工作,那么您应该反对它,并真正打击他们的“酷”因素他们'将失踪。

鉴于GWT,RichFaces等对Javascript的严重依赖,如果没有它,使用任何类型的用户友好UI都不可行。

你应该警告非JS用户,他们试图访问的网站在很大程度上依赖于JS。没有必要对此粗鲁。

答案 9 :(得分:2)

现在可以假设您的访问者已启用JS。话虽如此,您应该努力在禁用JS的情况下尽可能降低您网站的性能。如果您的站点回归到没有JS的情况下仍然可用的状态,这是理想的。

答案 10 :(得分:2)

没有!某些环境会将其作为策略禁用,但您无法执行任何操作。即使它已启用,它也可能会瘫痪。

之前已经问过这个问题。

答案 11 :(得分:1)

需要考虑的一个有趣点是,作为一名Web开发人员,您有社会责任推动技术发展 - 并且通过使用AJAX之类的东西,您可以提高曝光率和潜在的采用率。唯一能够阻止你最大限度地利用技术的是金钱 - 如果你不能赚到你需要的钱,因为人们在查看材料时会遇到麻烦,你必须重新考虑。

答案 12 :(得分:1)

永远不要假设Javascript进行表单验证,正如您的问题所暗示的那样。有人最终会意识到这一点并关闭Javascript。

相反,以相当规律的html方式对应用进行编码,并使用Javascript来实现它的目的:为用户提供可选的优势。

即使对于像Gmail这样的完全AJAX应用程序,服务器端也需要完整的表单验证工作。

答案 13 :(得分:1)

是的,JavaScript和CSS一样古老,没有人试图构建不支持CSS的浏览器。 Cross Site Scripting是人们害怕JavaScript的原因,但相信我,如果开发人员想要搞砸你,他不需要JavaScript来做。对于移动浏览器,其中大多数现在都有JavaScript,而其他浏览器不应被视为浏览器。我的建议不是让自己向黑客敞开心扉,让你的网站容易受到那些选择关闭JavaScript的人的攻击,但同时也不要偏袒那些生活在石器时代的人。你不会支持IE 4或Netscape,对吗?那么为什么支持那些因为公然恐惧或偏执而破坏自己浏览器的人?

答案 14 :(得分:0)

这完全是一个“依赖”的问题,正如许多人所指出的那样。

这就是为什么指标在网站上有价值,以帮助展示你是否真的可以运行“主要网站说大多数人都有JS”的类比 - 你可以拥有一个99%的网站。 我不会深入研究上面所说的内容,因为它得到了很好的回答:)

答案 15 :(得分:0)

我总是首先尝试将我的网站编码为静态网站,然后添加js / ajax功能。这样我就可以确定它可以在非JS浏览器上运行:)

但是,javascript就像flash:所有用户都拥有它,但开发人员必须关注什么?.... :d

答案 16 :(得分:0)

并非所有其他人都没有插话,但我在某种程度上不同意“看你的观众”的立场。

如果您只是显示一些信息,那么它应该是“看看你的应用程序”,并且你的js是用于铃声/哨声的目的,如果你愿意,那么肯定会看到好的降级。

但是,如果您正在构建像Google Docs这样的东西,那么有人会认为他们可以在没有js的情况下使用您的网站,所以也许让他们通过<noscript>标签内的一条漂亮的讽刺消息告诉他们。 / p>

从纯粹的哲学观点来看,如果用户想要访问你的网站,他们会翻转js开关,或者升级到合适的浏览器等等。你应该强迫他们这样做,因为进化对于物种的生存。

答案 17 :(得分:0)

根据this网站,95%的浏览器都使用JavaScript。

也就是说,有很多机器人不使用JavaScript:刮刀,搜索机器人等。我说接近100%的实际人类用户使用JavaScript。但你的猜测和我的一样好。

答案 18 :(得分:0)

我认为只要你提供合适的方法来替换javascript如果没有启用它,那么期望它们拥有javascript是合理的。我喜欢Yahoo UI库的原因之一是它会优雅地降级。

答案 19 :(得分:0)

您的问题似乎建议应用程序的基于表单的输入。如果它是内部网应用程序,那么您将受到内部安全专家的指导。如果它是公共应用程序,那么正如其他海报所建议的那样,优雅地失败。

答案 20 :(得分:0)

假设您的访问者启用了JavaScript,这是合理的! - )

- 但当然这取决于你想要达到的目标......

已经多次提到w3schools,正如Dan所说,它们自己的访问者使得从中得出结论有些古怪。

但是,如果你看theCounter.com,他们的观众在这一点上似乎有相同的习惯......

尚未提及的一个转折点是越来越多的抓取工具,邮件收发器等等,它们肯定没有打开javascript,计数器检测它们有多好? - )

我的猜测是,这种机器浏览器填满了很多5-6%!o]

- 说,如果可能的话,让你的应用程序优雅地降级(正如一个聪明人所说)

答案 21 :(得分:0)

W3C Browser Statistics页面(向下滚动)有一些信息;他们说截至2008年1月,95%的访问者都有JavaScript。

答案 22 :(得分:0)

根据this little page在95%的浏览器中启用了Javascript,并且它不断提升。

答案 23 :(得分:0)

几乎所有(但不是全部!)用户都会启用javascript。 (我相信上面引用的数字约为5%是准确的。)

鉴于你可以通过明智地使用javascript来提高可用性,我的观点是,大多数时候,假设它已启用是合理的。

当然会有一些情况并非如此(例如,专为移动设备设计的网站,或者有很高比例的残疾用户等),并且总是应该努力制作您的网站尽可能接近尽可能多的人口。

那就是说,如果你只有一个低流量站点,一个小数字的5%是一个非常小的数字。如果这些人只能获得一两个额外用户,那么向后倾斜可能不值得让这些人访问您的网站。

我想简短的答案是(一如既往),没有正确的答案 - 它将完全取决于目标用途,以及有问题的目标用户。

答案 24 :(得分:0)

不,不是,句号,句号,故事结束。它在道德层面上只是天真和错误,更不用说你错过了全球约50%的互联网用户(相信全球70%的网络访问来自移动设备)。

添加需要Javascript的额外漂亮的东西,没关系。如果没有Javascript,请不要让您的网站无法使用,除非您确实有这么好的理由。

有人正确地指出,我没有证据支持我对70%移动网络用户的主张。不幸的是,我找不到我从中得到它的来源,但我记得它是具有权威性的,所以没有理由怀疑它。虽然当你考虑全球使用时,许多发展中国家拥有的移动电话多于固定电话和宽带,但确实有意义。在我不可寻找的消息来源中引用的统计数据是,一个非洲国家特别有300,000个固定电话,但有150万部移动电话!

答案 25 :(得分:0)

我认为,假设您网站的大多数访问者都启用了JavaScript,这是公平的。其中一些流量较大的网站依赖JavaScript。例如,我很惊讶地发现,如果没有支持JS的浏览器,您无法通过启用Passport的站点进行身份验证。