假设我的访客启用了JavaScript是合理的吗?
我了解服务器端验证是绝对必须防止恶意用户(或者只是选择禁用javascript的用户)绕过客户端验证。但这主要是为了保护应用程序,而不是为那些正在运行禁用了javascript的浏览器的用户提供价值。假设访问者启用了JavaScript,而对于那些没有启用访问者的网站来说,只是有一个无法使用的网站,是否合理?
解决方案
这些天可以假设访客启用了JS。话虽这么说,但我们应该在禁用JS的情况下努力使网站获得最佳的降级效果。如果网站恢复到没有JS仍然可以使用的状态,则是理想的选择。
是的。但是,如果不是对Google而言,则通过常规HTML和URL尽可能多地公开它。
可访问,是的...功能正常吗?并不真地。
这确实是一个客户需求问题,而不是开发人员可以回答的问题,但是,如果客户试图实施非JS浏览器可以运行的需求,则应对此提出强烈反对,并以他们会失去的"酷"因素来打击他们。
鉴于GWT,RichFaces等对Javascript的高度依赖,如果不使用任何类型的用户友好UI制作应用程序,这都是不可行的。
当然,我们应该警告未启用JS的用户,他们要访问的网站严重依赖JS。对此毫无礼貌。
我认为还有另一个原因会促使我们支持至少一些主要功能,而现在我们很多JS却无法从移动设备和PDA进行浏览,而JS没有相同的JavaScript支持。
我在Firefox中使用NoScript浏览,当我收到无法使用的页面时,它总是使我感到烦恼。那就是说了解你的听众。如果我们想迎合偏执的计算机安全专家,请假定他们可能未启用JavaScript。如果我们要面向普通读者,则可能启用了JavaScript。
http://www.w3schools.com/browsers/browsers_stats.asp
他们声称95%的用户都使用Javascript。
复制
至少有一个类别的答案肯定是"否"。如果我们在政府部门工作,则必须确保使用屏幕阅读器的人员可以访问该网站。
我认为可以假设我们网站的大多数访问者都启用了JavaScript。某些流量更高的网站依赖JavaScript。例如,令我惊讶的是,如果没有启用JS的浏览器,我们将无法通过启用Passport的站点进行身份验证。
没有它,时期,句号,故事的结局。在道德层面上这只是天真和错误,更不用说我们会错过全球约50%的互联网用户(相信或者不相信全球70%的Web访问是来自移动设备)。
添加需要Javascript的漂亮工具,就可以了。除非我们确实有非常充分的理由这样做,否则请不要使网站在没有Javascript的情况下无法使用。
正确地指出,我没有证据支持我对70%的移动网络用户的主张。不幸的是,我找不到它的来源,但我记得它是权威的,所以没有理由怀疑它。尽管考虑到全球使用情况,这确实是有道理的,但许多发展中国家拥有的手机比固定电话和宽带要多。在我不为人知的消息来源中引用的统计数据是,一个非洲国家尤其拥有300,000座机,但拥有150万部手机!
几乎所有(但不是全部!)用户都启用了javascript。 (我相信上面引用的数字约为5%是正确的。)
鉴于可以明智地使用javascript来提高可用性,我认为在大多数情况下,可以假定启用了javascript是合理的。
当然,在某些情况下并非如此(例如,一个为移动设备设计的网站,或者具有高比例的残疾用户的网站等等),并且一定要尽一切努力使网站像尽可能扩大人口的百分比。
就是说,如果我们只有一个低流量站点,那么少量的5%就是非常小的数目。当网站只能吸引我们一两个额外的用户时,可能不值得向后弯腰让这些人访问网站。
我想简短的答案是(一如既往),没有正确的答案,这将完全取决于目标用途以及所讨论席位的目标用户。
根据这个小页面,JavaScript已在95%的浏览器中启用,并且还在不断提高。
完全取决于目标。
如果站点或者应用程序是用于Intranet的,则可以进行很多假设。如果目标受众是前沿的社交网络类型,则可以假定JavaScript可以使用。如果我们预计会有很多偏执狂的sysadmin类型,则可以假设其中的许多类型将试图以lynx访问网站,或者出于"安全原因"而关闭了JS。
一个很好的例子是亚马逊-他们的方法是由他们的业务目标驱动的。他们是一个大众市场网站,但对他们而言,将用户锁定在旧版/无法使用的浏览器中意味着潜在的销售损失,因此他们努力应对非脚本后备广告。
因此,像许多这类问题一样,答案不仅是在反省我们所阅读的有关可访问性或者渐进式增强功能的内容。真正的答案是"取决于情况"。
W3C浏览器统计信息页面(向下滚动)提供了一些有关此信息;他们说,截至2008年1月,有95%的访问者使用了JavaScript。
假设访问者启用了JavaScript是合理的!-)
-但是,这当然取决于我们要联系的人...
正如Dan所言,已经提到过几次以上的w3schools,并且它自己的访问者也因此得出结论有些古怪。
但是,如果我们查看theCounter.com,似乎他们的观众在这一点上通常具有相同的习惯...
尚未提及的一个变数是,爬虫,邮件收集器等的数量不断增加,它们肯定没有打开javascript,计数器检测到它们有多好?
我的猜测是,这种机器浏览器占了这些5-6%的大部分!
-也就是说,如果有可能,请让应用正常降级(就像一个聪明人说的那样)
问题似乎建议为应用程序提供基于表单的输入。如果是Intranet应用程序,那么我们将受到内部安全专家的指导。如果它是公共应用程序,则正如其他张贴者所建议的那样,失败了。
不!根据政策,某些环境将禁用它,而我们无能为力地启用它。即使启用,它也可能会瘫痪。
这个问题已经被问过了。
我将辩称,只要我们提供了适当的方式来替换javascript(如果未启用),则期望他们拥有javascript是合理的。我喜欢Yahoo UI库的原因之一是它可以正常降级。
需要考虑的一个有趣的观点是,作为Web开发人员,我们有社会责任推动技术向前发展,并且通过使用AJAX这样的方法,我们会增加曝光率,并可能增加其采用率。如果我们无法赚到所需的钱,因为人们在查看材料时会遇到困难,那么唯一无法阻止我们充分利用该技术的就是金钱。
我使用firefox中的NoScript插件浏览,令我惊讶的是,甚至没有考虑使网站可降解的开发人员数量众多。
千万不要以为用户禁用了JavaScript,尤其要注意的是,这可能并非总是他们的错。许多企业都有阻止JavaScript / ActiveX等的防火墙。在这种情况下,<noscript>
元素将不起作用,因此我也不建议使用它!
除非我们要创建将占90%Ajax的功能全面的Web应用程序,否则我们必须确保遵守标准并通过各个层次的交互作用逐步增强站点。
另外,不要忘记对象检测的重要性,尤其是随着手机Web浏览的兴起。最受欢迎的移动Web浏览器之一(Opera mini 4.0)不允许所有的" Background javaScript"工作,并且Ajax调用很少能正确执行...只是需要注意的一点。
老实说,我讨厌开发人员认为每个人都将启用JS!真是无知!!
我总是先尝试将网站编码为静态,然后再添加js / ajax功能。这样我可以确定可以在非JS浏览器上使用:)
但是,javascript就像flash:所有用户都拥有它,但开发人员必须关注WIF IF ....? :D
正如许多人指出的那样,这完全是一个"取决于"的问题。
这就是为什么指标在网站上很有价值的原因,以证明我们是否可以像"大多数网站说大多数人都使用JS"这样的类比来运行,我们可能拥有99%的网站。
我不会深入研究上面所说的,因为已经很好地回答了:)
Is it reasonable to assume visitors have javascript enabled and simply have an unusable site for those who don't?
实际上有两个问题,答案是:是的,假设访问者启用了javascript是合理的。而且,不,这并不意味着其他人应该留有不可用的站点。
渐进式增强是必经之路。让网站在不使用JavaScript的情况下就可以使用,然后添加风声。
至于客户端验证,对于用户而言,避免不必要的服务器往返(应执行实际验证)无非是一种便利。
正如问题所暗示的,永远不要假设使用Javascript进行表单验证。最终,有人会意识到这一点并关闭Javascript。
而是以相当常规的html方式对应用程序进行编码,然后使用Javascript编写内容:用户的可选特权。
即使对于像Gmail这样的完全AJAX应用程序,也需要在服务器端完成表单验证的全部工作。
并非所有人都没有加入,但我在某种程度上不同意"看着你的听众"的立场。
如果我们只是显示一些信息,并且应该将其js用于铃声/哨声,那么实际上应该是"查看应用程序",如果我们愿意的话,当然可以查看不错的降级效果。
但是,如果我们要构建类似Google Docs的工具,那真是太愚蠢了,有人会认为他们可以在不使用js的情况下使用网站,因此也许可以通过标签<noscript>中的讽刺信息让他们知道。
从纯粹的哲学角度来看,如果用户要访问网站,他们将翻转js开关,或者升级到像样的浏览器等。并且我们应该强迫他们这样做,因为演进对于网站的生存至关重要物种。