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

据我所知,服务器端validation是绝对必须的,以防止恶意用户(或只是select禁用JavaScript的用户)绕过客户端validation。 但是,这主要是为了保护您的应用程序,而不是为那些在JavaScript禁用的情况下运行浏览器的用户提供价值。 假设访问者已经启用了JavaScript,并且对于那些没有使用的站点只是有一个不可用的网站是合理的?

我在Firefox中使用NoScript进行浏览,当我得到不工作的页面时,它总是让我恼火。 这就是说 – 了解你的听众。 如果你想迎合偏执的电脑安全专业人士 – 假设他们可能没有启用JavaScript。 如果你想要一般的观众,JavaScript可能是开放的。

完全取决于你的目标。

如果您的网站或应用程序用于Intranet,则可以进行大量假设。 如果您的目标受众是stream血的社交networkingtypes,那么您可以假定JavaScript将起作用。 如果你预计会有很多偏执的系统pipe理员types,你可以假设他们中的一些人会试图访问你的网站在l or,或由于“安全原因”JS转向。

亚马逊就是一个很好的例子 – 他们的方法是由他们的商业目标驱动的。 他们是一个大众市场网站,但是对于他们来说,将用户locking在旧的/无能的浏览器中意味着潜在的销售损失,所以他们在非脚本回退上下功夫。

所以像很多这样的问题,答案不仅仅是让你读到关于可访问性或渐进式增强的东西。 真正的答案是“这取决于”。

我认为还有另外一个原因促使你至less支持一些没有JS的主要function – 现在我们很多人正在从移动和PDA上浏览,而这些浏览器没有相同的JavaScript支持。

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

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

重复

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

假设访问者已经启用了JavaScript,并且对于那些没有使用的站点只是有一个不可用的站点是合理的?

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

渐进式增强是要走的路。 有没有JavaScript的网站可用,然后添加花里胡哨。

至于客户端validation,对于用户而言,避免不必要的往返服务器(应该执行真正的validation)是方便的。

我使用Firefox中的NoScript插件浏览,而且我甚至都没有考虑过让它们的网站降级的开发人员感到惊讶。

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

除非你正在创build一个完整的web应用程序,这个应用程序将会是90%的Ajax,那么你必须确保遵守标准,并通过各种交互层次逐步提高你的网站。

另外不要忘记对象检测的重要性,特别是随着手机网页浏览的兴起。 其中一个最受欢迎的移动networking浏览器(Opera mini 4.0)不允许所有的“Background javaScript”工作,Ajax调用很less正确执行…只是需要注意的一点。

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

是的。 但是尽可能多地通过普通的HTML和URL来暴露,如果没有别的,就只有Google。

无障碍,是的…function? 不是真的。

这实际上是一个客户需求问题,而不是开发人员可以接受的问题,但是如果客户试图强制要求非JS浏览器工作,那么您应该反驳这个问题,并且真正的谴责他们将会失去的“酷”因素。

鉴于GWT,RichFaces等对Javascript的严重依赖,仅仅在没有它的情况下使用任何一种用户友好的UI来制作应用程序是不可行的。

不过,你应该警告非JS的用户,他们试图访问的网站很大程度上依赖于JS。 没有意义的粗鲁。

假设你的访问者已经启用了JS,这些日子没关系。 有了这个说法,你应该争取尽可能的降低你的网站与JS禁用。 如果你的网站回落到没有JS的情况下仍然可以使用,这是理想的。

没有! 有些环境会因为政策而被禁用,因此无法启用它。 即使启用,它可能会被瘫痪。

这个问题之前已经被问到了。

需要考虑的一个有趣的地方是,作为一个networking开发者,你有推动技术向前发展的社会责任 – 通过使用诸如AJAX之类的东西,你可以增加曝光率和潜在的接受率。 唯一能够阻止你最大限度地使用技术的是钱 – 如果你不能赚钱,因为人们在查看资料时会遇到麻烦,所以你必须重新考虑。

永远不要承担Javascript的表单validation,因为你的问题意味着什么。 有人最终会意识到这一点,并closuresJavaScript。

相反,以相当常规的HTML方式编写应用程序,并使用JavaScript来实现它:为用户提供一个可选的特权。

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

是的,JavaScript和CSS一样古老,没有人试图绕过不支持CSS的浏览器。 跨站脚本是人们害怕JavaScript的原因,但相信我,如果一个开发人员想要搞砸你,他不需要JavaScript来做到这一点。 就移动浏览器而言,他们中的大多数现在都拥有JavaScript,其他人不应该被视为浏览器。 我的build议是不要让自己的网站容易受到黑客的攻击,让您的网站容易受到那些selectclosuresJavaScript的人的影响,同时也不会阻碍那些生活在石器时代的人。 你不会支持IE 4或Netscape,对吧? 那么为什么支持那些因为公然恐惧或偏执狂而破坏自己浏览器的人?

我认为这是公平的假设大多数访客访问您的网站将启用JavaScript。 一些更stream行的网站有JavaScript的依赖。 例如,我惊讶地发现,如果没有启用JS的浏览器,您无法通过启用Passport的网站进行身份validation。

几乎所有(但不是全部!)用户将启用JavaScript。 (我相信上面引用的大概5%的数字是准确的。)

鉴于在可用性方面的巨大改进,您可以使用JavaScript的明智使用,我认为大多数时候,它是合理的假设它启用。

当然,有些情况并非如此(例如,为移动设备devise的网站,或者有很大比例的残疾用户等),并且总是应该努力让您的网站可访问尽可能大到人口的百分比。

这就是说,如果你只有一个低stream量的网站,5%的小数目是一个非常小的数字。 这可能是不值得向后弯曲的,以使您的网站可以访问这些人,当它可能只会让你一个或两个额外的用户。

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

根据这个小页面 JavaScript启用了95%的浏览器,并不断提高。

W3C浏览器统计页面(向下滚动)有一些这方面的信息; 他们说,截至2008年1月,95%的访问者拥有JavaScript。

假设你的访问者已经启用了javascript是合理的!)

– 但当然这取决于你想要达到的目标…

已经提到了几个以上的学校,就像丹说的那样,他们自己的访问者使得它有点古怪,从中得出结论。

但是,如果你看看Counter.com ,他们的观众似乎总体上有相同的习惯。

还没有提到的一个转折是越来越多的爬虫,邮件收发器等等,他们绝对没有开启javascript,并且有多less优秀的柜台来检测它们?)

我的猜测是,这类机器浏览器占了5-6%!]

– 如果这是可能的话,让你的应用程序优雅地降级(正如一位智者所说)

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

我会争辩说,只要你提供了适当的方法来取代javascript,如果不启用它,期待他们拥有javascript是比较合理的。 我喜欢雅虎图书馆的原因之一是,它优雅地退化。

我总是试图编码我的网站作为静态首先,然后我添加js / ajaxfunction。 这样我可以肯定,这将在非JS浏览器上工作:)

但是,JavaScript就像flash:所有的用户都拥有它,但开发人员不得不关注什么? :d

没有它,没有时间,完整的,故事的结尾。 它在道德层面上只是幼稚和错误的,更不要说你错过了全球约50%的互联网用户(相信世界上70%的互联网接入来自移动设备)。

添加额外的漂亮的东西,需要Javascript,这很好。 除非你确实有真正的理由这样做,否则不要让你的网站无法使用Javascript。

有人正确地指出,我没有证据支持我对70%移动networking用户的说法。 不幸的是,我找不到我得到它的来源,但我记得它是授权的,所以没有理由怀疑它。 当你考虑到全世界的使用情况时,这是有道理的,许多发展中国家的手机比固定电话和宽带更多。 在我未find的资料中引用的一项统计数据是,一个非洲国家特别拥有30万座固定电话,但拥有150万部手机!

正如很多人所指出的,这完全是一个“视情况而定”的问题。

这就是为什么指标在网站上很有价值,以帮助certificate您是否真的可以用“主要网站说大多数人拥有JS”这个比喻来运行 – 您可以拥有一个99%的网站。 我不会深究上面所说的,因为它被回答得非常好:)

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

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

但是,如果您构build的是Google文档,那么确实有人会认为他们可以在没有js的情况下使用您的网站,所以也许可以通过<noscript>标签中的一个很好的讽刺信息告诉他们。

从纯哲学的angular度来看,如果用户想要访问你的网站,他们会翻转js开关,或升级到一个体面的浏览器等。你应该强迫他们这样做,因为进化是重要的生存种类。

根据这个网站,95%的浏览器使用JavaScript。

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