我从事Web开发已经有将近10年了,我养成了尽量不使用JavaScript的习惯。我在这里不是在谈论构建Web应用程序,而是在数据库驱动的网站。
这是一个好的/受人尊敬的方法吗?
我从事Web开发已经有将近10年了,我养成了尽量不使用JavaScript的习惯。我在这里不是在谈论构建Web应用程序,而是在数据库驱动的网站。
这是一个好的/受人尊敬的方法吗?
Answers:
10年前,这可能是个好主意。如今,当在浏览器中禁用Javascript时,Internet的大多数部分(至少是一些非常流行的部分)几乎变得不可用,或者仅提供了非常受限制的功能。因此,恕我直言,今天您可以期望您的用户启用Javascript。
并且有很多框架,例如JQuery可以解决浏览器不兼容的问题。恕我直言,今天没有真正的理由为什么您不使用Javascript来限制自己的网站-唯一的原因可能是您没有使用Javascript。
编辑:一个不同的问题是:如果您的访问者未启用JS时,您应该提供网站的某些最小功能 -这是一个好主意,因为某些评论者指出了这一点。
编辑2:当然,对于每个网站,都必须在用户友好性,搜索引擎友好性和开发工作之间找到平衡。恕我直言,今天的Javascript可以帮助改善这种平衡-如果使用得当的话。话虽如此,我认为现在一般不再需要再进一步最小化Javascript的使用来保持这种平衡。小心使用它,不要妖魔化它。
如果拥有一个无需使用JavaScript即可使用的网站,则意味着该网站可供尽可能广泛的受众使用。的确,大多数浏览器都支持JavaScript,并且大多数用户默认情况下都将其保留为打开状态,但是您不能肯定地依靠它。毕竟,并非访问您网站的所有内容都是浏览器。如果您希望您的网站被Google等搜索引擎正确索引,则GoogleBot需要能够在没有JavaScript的情况下浏览您的网站。
还有一些专业的网络浏览软件,其中的JavaScript无法使用或无法正常使用。例如,视障人士使用的屏幕阅读或盲文软件。在某些环境中,内存会受到限制,并且拥有大量JavaScript可能会使浏览体验令人不快甚至不切实际,例如智能手机浏览器。
您应该研究“渐进式增强”的概念,在该概念中,您可以构建一个无需使用javascript即可工作的网站,然后在其顶部添加一个javascript层以改善用户体验。这样,您将拥有一个至少对没有javascript的人可用的网站。
您无需努力将计划用JavaScript实现的所有可能功能提供给非JavaScript浏览器,但是至少保留基本用例而不使用JavaScript仍然很重要。能够浏览该网站显然是最重要的,但是,如果您要构建一个电子商务网站,则使结帐过程依赖JavaScript会很愚蠢,因为这可能会增加销售成本。
其他答案似乎集中在“我不应该使用JavaScript”上,所以我认为他们没有抓住重点。如果不需要,则不应使用JavaScript。有些人对所有内容都使用JavaScript :
href
合理时应具有)好处是:
href
链接有助于搜索引擎,想要在其他选项卡中打开链接的用户以及讨厌JavaScript的用户当然,AJAX非常酷,动态页面也很酷,因此不要仅仅因为某些人不需要它们而丢弃这些东西。
我的观点是,学习如何在没有JavaScript的情况下做事是件好事,将JavaScript最小化是一件好事,在JavaScript无法工作时进行备份是一件好事,但是没有理由避免使用功能,因为它们需要JavaScript。
避免不必要的功能是一个好主意。jQuery之类的框架使添加多余的装饰变得异常容易,但有时却没有。例如:
您真的需要制作动画吗?
... 要么 ...
遍历整个DOM对于这样一个琐碎的选择器确实需要吗?您能否使用上下文来限制它,我们是否首先需要它?
我会避免使用 JS,但是在寻找速度较慢的计算机时,我确实要当心不要讨厌。我们在CSS3中获得的一些新颖奇特的东西也是如此(例如阴影)……如果过度使用它们,可能会使动力较低的机器上的人感到非常糟糕。
例外情况可能是为各种设备编写前端控件,这些控件必须在禁用JS的情况下绝对起作用(也许数据中心管理网络上严格的安全策略规定没有JS)。因此,以上内容应结合您的要求进行考虑。
“ 数据库驱动的网站 ”是答案的关键。创建网站的方式有两种,实际上所允许的Javascript数量取决于您所使用的Javascript。您可以构建:
以内容为中心的网站。在第一种情况下,魔术词是“渐进增强”。将javascript限制为可以通过纯HTTP对内容进行经典访问的冗余功能。
Web应用程序。对于应用程序,您将Web用作软件平台。应用程序依赖于可用软件的一些假设-现代浏览器,最新版本的流行javascript库,使用鼠标和/或具有多点触控的平板电脑进行桌面访问。
如果您实际上是在构建应用程序,则最低访问要求是可以的-您可以将特定平台定位为目标,以获得无法通过其他方式无法构建的高级功能。就像为Python或Java或.Net开发一样。不要让诸如HTML5之类的流行语和“随处可见”的承诺蒙骗您;您只能在设备之间支持整个平台的情况下,才能在设备之间使用可移植代码。对开发堆栈的任何更改,都会破坏软件。
因此,要付出的代价是,随着新版本平台的发布,您正在遵循一个不断变化的目标。您必须赶上赶超程序的步伐,以确保应用随着平台的发展而正常运行。您获得的唯一好处是不依赖于程序包或应用程序商店的半通用交付机制。但是您将失去使网络与以前的联网计算机系统区分开的主要功能。
以内容为中心的网站是另一回事。它们具有经典的万维网的传统。内容由客户端松散地解释,客户端可以在呈现之前进行任何所需的转换。预计该站点可以由可能支持或不支持当前标准的不同平台的生态系统访问:
如果您需要不断更新的最新javascript,则将全部丢掉。在这种情况下,阻止访问内容的Javascript是一种罪过。
每个人都说“应该最小化javascript的使用”是在倡导这种风格。请注意,可以包含一些 JS,但是所有功能都应该是多余的,并且可以对可以在服务器端实现的内容进行基本访问:
这种方法的好处是减少了测试和升级所需的时间,并延长了保质期。20年前的第一个静态网页仍可在任何Web客户端中浏览,但第一个Web应用程序将永远被破坏。如果您的网站根本没有任何归档价值,那么从长远来看,您将从使用Web作为内容交付系统(而不是应用程序平台)中受益。
我在州政府工作,因此,我的大部分发展都涉及数据驱动的交互式网站。查询历史数据,表单提交之类的东西。由于以下原因,我们将JavaScript保持在绝对最低水平:
1)表单输入的验证应始终在服务器端进行,而不应在客户端进行。如果您尝试在客户端上验证输入,则黑客要做的就是创建网页的本地副本,然后重新编写Javascript以允许他想要发送给您的内容(SQL注入等)。验证必须在您的独占控制下的某个地方进行,即在服务器上。
2)许多用户要么关闭Java脚本,要么使用可能无法正确实现Java的浏览器。作为政府,我们必须支持所有人,即使他们使用的确是真正的旧设备。HTML随处可见;Javascript,不是很多。通过不在网页中使用Javascript,您可以使用很少的资源在客户端计算机上占用很少的Java资源。这样可以最大限度地增加可以访问您的内容的人数。出于同样的原因,您不应该对CSS过于了解。保持简洁,保持清洁,并让小老太婆看到您的站点,即使他们的计算机是在1999年购买的(顺便说一句,我们也确实收到了像这样的人的技术支持电话)。
3)Javascript是“ Web开发人员”而不是服务器端程序员所偏爱的工具,因此通常很难看。设计人员(如果您想老实地说,这就是Web开发人员通常所为)通常不会看到从网络上随机位置下载“脚本”的问题。他们说诸如“为什么要重新发明轮子?”之类的话。和“此处未发明”。因此,他们通常不用去编写自己的代码,而只是从外面的另一个网站上抢东西,以为如果在互联网上,那是公平的游戏。这样做有两个问题:A)他们可能无意中发布了一些需要您花点时间才能找到的恶意Java脚本; B)他们可能侵犯了某人的版权,并遭到起诉。两种情况都应避免。
一般而言,JavaScript是一个坏主意。任何类型的客户端代码都是一个坏主意。客户端应仅包含标记语言和CSS;让服务器端处理繁重的工作。
这取决于。
尽管可以期望桌面用户代理以有意义的方式支持和运行javascript,但是并非所有用户代理都是图形桌面浏览器,因此您需要确定是否要满足他们的需求。
示例包括:
我的经验法则是,如果它是常规用户(内部,社区等)的Web应用程序,那么依靠javascript是可以的,但是如果您希望可以公开访问和找到,那么至少至关重要功能无需javascript即可完美运行,并且在需要时应该正常运行,而不是表现出“未定义”行为。
根据我的经验,曾经有一段时间公司根据政策禁用JavaScript。但是这个时间已经过去了。目前,我已经为大型跨国公司构建了一些大型的Intranet应用程序和Web应用程序。对于所有应用程序,JavaScript和JQuery的使用是客户期望的一部分。
为客户构建应用程序不再只是速度和安全性。客户希望专注于可用性和AJAX技术的使用。如果不使用JavaScript,它将无法正常工作。对于某些非常小的任务(例如计算),或类似的事情,对于所有公司而言,始终都会回发。
当我们考虑大公司的当前情况时,还有一个指标表明为什么JavaScript目前必须具备。查看当前正在运行的CMS系统。他们中的大多数使用Microsoft SharePoint或Adobe CQ,其中一些使用Drupal或其他任何方式,依此类推。所有这些系统都依赖JavaScript。如果没有JavaScript,大多数应用程序将无法正常运行,这是用户期望的。
在过去的时代,JavaScript被使用和滥用,脚本(被认为是)充满漏洞和恶意软件来源。
许多公司网络通过禁用JS来响应,该策略在当今(正确或错误)仍存在于许多组织中。
很简单,我建议任何网站都不应依赖 JS进行操作
正如这里大多数答案所解释的那样,使用javascript
无害。如果您想保存编码和看上去凌乱的源代码,请尝试coffee-script
使用它将节省很多输入时间javascript
。