JavaScript的过度或不足使用。现在什么是可接受的?

5
作为一个初学者的Web开发者,我正在尝试在跨平台可用性/兼容性和魅力(功能性)之间寻找平衡。
这是否像几年前那样成为一个问题?我的网站部分需要 JavaScript(敢说是让我的生活更轻松的东西),但这并不是移动设备所想要访问的内容(尽管如果它愿意,也可以访问)。
如果您向下滚动,您会发现根据http://www.w3schools.com/browsers/browsers_stats.asp显示,访问该网站的计算机中有95%启用/安装了JavaScript。
非常感谢任何曾经处理过这个问题的人能够提供帮助。

2
请记住,您正在创建的网站与w3schools可能在受众方面存在非常大的差异。例如,如果您有一个名为www.grandmothers.com的网站,此时浏览器统计数据对您来说可能完全无用,因为您的目标受众截然不同。 - Nick Craver
7个回答

2
这取决于你正在做什么。如果只是为了增加UI效果,我坚信JavaScript会优雅地降级。这是一条很细微的线,没有一个确切的答案。有时候你可以对用户群体进行一些假设——例如,如果你正在编写移动Web应用程序,那么你几乎可以保证拥有良好的HTML5支持。而在其他情况下,你可能需要担心IE6的兼容性问题。所有这些都取决于你的受众以及你能够花费多少时间来支持不同的配置。
我强烈建议作为一个新手Web开发者,学习如何通过JavaScript实现渐进增强。即使你不关心不支持JavaScript的浏览器,这通常是解决问题的“正确”方式;而且很可能在未来遇到需要支持旧版浏览器的情况(Googlebot也属于这一类)。

2
我不认识任何一个人会永久关闭Javascript。大量依赖JS的网站意味着没有它,网络几乎无法使用。绝大多数人都将其保持开启状态。过去让人们关闭JS的严重安全漏洞早已修复,所以这个问题比以前少得多了。
仍然有一些事情让偏执者担心,但即使是这样,大多数禁用JS的人也是使用像Firefox NoScript扩展这样的工具来逐个站点地禁用JS而不是完全关闭它。当这些人访问新站点时,他们必须决定是否信任该站点并为其启用JS。
另一个可能受影响的人群是使用屏幕阅读器或其他辅助技术的残障用户。其中许多人可能无法使用Javascript。(尽管如此,许多人可以;与普通浏览器相比,屏幕阅读器并不像许多人想象的那样落后)
不过归根结底,支持没有JS的访问者取决于您自己。以下是需要考虑的一些事项:
- 您的网站是否绝对需要Javacript - 如果您正在编写类似GMail的系统,并且整个系统只能因为JS而工作,那么显然您无法支持没有它的情况。 - 您的受众中有多少人禁用了JS?他们中有多少人准备重新启用它来访问您的网站?这些人中有多少是您愿意失去的?在回答这个问题之前,您需要了解自己的人口统计信息。 - 您能否编写JS功能,使得即使没有它,网站仍然可以足够地工作?关闭JS的用户会期望他们访问的网站看起来不太好,并且缺少功能,但只要重要部分对他们仍然有效,他们就会很高兴。

纯靠JS运作的网站数量庞大,这意味着在没有JS的情况下,网络基本上无法使用。不过,不带Gmail,因为它有一个完全可用的HTML客户端,所以我猜那是一个需要JS才能运行的应用程序的不好的例子。 - Stan Rogers

0
只要您的网站可以“优雅地”失败,您真的可以自行决定要尝试容纳多少大众。
我做的大部分网站,如果没有 JavaScript,即使最基本的功能也毫无意义,因为它们存在的原因是购买/浏览 MySQL 内容。
所以,我只需确保如果他们需要 JavaScript,在页面加载时就检查它,如果不存在,我会友好地告知用户,他们需要启用或安装它以使我的站点正常运行。
当然,在理想的世界中,您应该总是迎合每个用户群体,但由于客户很少想支付这种开发费用,我通常会尽可能地捕捉最大的用户群体,并使用最少的资源和开发。
下面是我喜欢使用的代码:
<!-- make sure javascript is turned on.. --><noscript><div style="position:absolute;top:10px;left:10px;width:300px;height:90px;background-color:#FFF;border:solid;border-width:2px;border-color:#F00;font-size:14px;text-align:center;overflow:hidden;z-index:999;"><div style="position:absolute;top:5px;left:5px;width:50px;height:80px;background-color:#F00;color:#FFF;font-size:48px;text-align:center;line-height:80px;">!</div><div style="width:230px;height:60px;position:absolute;top:15px;left:65px;text-align:center;font-size:13px;color:#F00;font-style:italic;">ERROR: JAVASCRIPT MISSING<br /><br />Enable or install Javascript<br />to view this site.</div></div></noscript>

在我测试过的所有浏览器中,这对我都很有效。


0

w3Schools被开发人员使用,不是普通公众的真实代表。

全球统计计数器(http://gs.statcounter.com/)是更有效的衡量一般用户的方法。

您如何编写您的网站取决于预期的受众。


0

我认为这个数字不会有太大的变化 - 95% 接近正确。

我的建议是尽可能地使用 JQuery,因为它有助于减轻特定于浏览器的问题。此外,计划添加 NoScript 功能,以便如果您的用户没有 JS,则可以优雅地退化为带有较少 "Pizzaz" 的东西

就移动设备访问包含 JS 的页面而言 - 不要过于担心,移动浏览器可以很好地处理 javascript。


0

正如其他人所说,这取决于您的受众。此外,您的网站应该具有一些基本功能。也就是说,他们应该能够使用任何东西查看和使用您的内容。任何额外的功能都可以适用于那些可以查看它的人。

大多数用户确实启用了Javascript,但有时由于恶意软件、脚本拦截器、广告拦截器等原因,它无法工作。这些人习惯了事情不起作用。(尝试在没有启用Javascript的情况下查看YouTube和其他几个流行网站。)这并不意味着您可以忽略它们。这只是意味着您的网站大部分应该在没有Javascript的情况下正常运行。


0

我很欣赏你提出这个问题,但是我必须说,到目前为止,我对你收到的答案(包括被接受的答案)感到非常失望。似乎普遍存在这样一种看法,即禁用JavaScript的用户要么是反对技术进步的人,要么是白痴。人们一直在谈论“优雅降级”,但这完全忽略了一个重点,那就是可访问性。

除非您正在构建一个对视觉或运动障碍用户没有任何帮助的网站(比如在线图形游戏),否则您的网站应该能够在CSS、图像和JavaScript全部禁用的情况下正常工作,并且具有完美的意义。低视力用户可能会覆盖您的CSS以便于阅读屏幕,他们不会太关心您的图像,除非alt文本(如果您已经包含它)使其听起来足够吸引人,值得查看放大版本。而盲人将使用盲文界面或像JAWS这样的屏幕阅读器,这两者都不太兼容页面上随机区域的后台更新。

在任何人开始抱怨为残疾人设计应用程序的难度之前,让我说一句,这只是其中的简单部分。设计基本的工作应用程序只需要关注文档结构(语义标记等),如果您一直关注文档结构,那么您也很可能已经关注了服务器上的数据结构。此时,应用程序可能看起来不怎么样,但它将提供所有应该提供的信息,并从用户那里获取所需的任何输入。当然,所有内容都需要完整的页面加载,但它们都可以正常工作。

图像、CSS和JavaScript都可以用于增强工作应用程序。游戏的目标不是“优雅的降级”,而是“渐进式增强”。图像和CSS不仅添加装饰效果,还可以加强信息层次结构并为能够欣赏视觉增强的用户澄清用户操作。JavaScript可以覆盖UI元素(链接、按钮、文本区域等)的默认行为,为用户提供即时反馈并保持不间断的工作流程。向与原始HTML应用程序页面使用的相同数据结构提供AJAX友好型API并不难。

没有任何借口忽视无障碍性。唯有无知和偏见。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接