我知道服务器端验证绝对必须防止恶意用户(或者只是选择禁用javascript的用户)绕过客户端验证。但这主要是为了保护您的应用程序,而不是为运行浏览器禁用javascript的用户提供价值。假设访问者启用了javascript并且只为那些没有启用javascript的网站提供了无法使用的网站,这是否合理呢?
答案 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)
至少有一个类别的答案肯定是“不”。如果您为政府工作,必须确保使用屏幕阅读器的人可以访问该网站。
答案 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的站点进行身份验证。