有时需要使用多个JavaScript库吗?

时间:2012-06-30 19:22:24

标签: javascript jquery

我是网络开发的新手,并不完全理解js框架在应用中扮演的角色。我开始使用jQuery,但人们说我应该为我的项目尝试prototype.js或node.js,这是一款多人策略游戏。

在早期选择框架并确保它能够完成您需要的所有内容以便您不必使用多个框架这一点很重要吗?

4 个答案:

答案 0 :(得分:9)

  

我是网络开发的新手,并不完全理解js的角色   框架在应用程序中播放

你很新但很幸运!

几年前,开发人员很难在CSS(仍然有点),事件处理,动画,DOM操作方面解决跨浏览器问题。您必须经常为每个浏览器编写不同的代码。

JavaScript库栩栩如生,解决了开发人员的问题,他们在幕后完成了所有的魔术,并且在每个浏览器中编写相同的代码(几乎总是)。换句话说,JavaScript库通过为您提供用于任何浏览器的一致函数集来自行解决跨浏览器问题。

通常,JavaScript库会处理这些内容或提供以下选项:

  • 跨浏览器问题处理
  • 动画
  • 自定义对话框和小部件
  • 能够编写较少的代码
  • 特定选择器引擎
  • DOM的创建/修改
  • 事件处理
  • 效用函数
  • AJAX
  

我开始使用jQuery,但人们说我应该尝试   我的项目的prototype.js或node.js,这是一个多人游戏   策略游戏。

基本上他们做同样的事情(如上所述),由你决定你会选择哪一个。我个人喜欢jQuery,因为它很容易入手,并且具有类似CSS的选择器机制。

Node.JS是完全不同的野兽,与基于客户端JavaScript的jQuery或Prototype不同,node.js是服务器端JavaScript。

  

在早期选择框架并确保它是否很重要   做你需要的一切,所以你不必使用多个框架?

根据您的需要,除非您需要它,否则并不重要。虽然我个人建议你首先学习JavaScript本身,这样当你以后来到JavaScript库时,你应该能够完成大部分工作。

答案 1 :(得分:4)

javascript框架的作用非常简单:为您提供一组更高级别的功能,以便您可以构建应用程序,而无需重新编写之前已完成的事情并提供开发结构。您可以将jQuery或prototype.js视为其他人经常需要反复编写的函数集,以便他们已经为您完成了。诸如在屏幕上设置动画对象或在DOM中合并和重新排列元素之类的事情对于许多应用程序来说是常见的,因此这些框架和许多其他框架试图简化这些常见任务。另一件好事是他们已经为每个平台以最佳方式解决了常见问题所以无论使用什么浏览器或手机,你都会得到类似的体验 - 这不是以前的情况下。

Node.js是不同的东西。它是一种服务器端语言(当然语言是javascript)但它扮演的角色是php或perl或python或ruby(或你最喜欢的服务器端lang),因为它实际上运行代码来与数据库通信并获取页面上的服务器,而其他人通常在浏览器中的用户机器上运行代码。

我建议只选择一个框架并学好它(我的个人投票是jQuery,因为广泛的开发人员基础,nice plugins,良好documentation,以及代码的可理解性)但是因为每个这些只是普通的javascript引擎盖下,任何你不能做的事情你可以用普通的javascript桥接。实际上你可以在任何一个中做任何事情,只是一些任务在一个框架中比另一个更简单。当与几个人合作时,虽然他们可能不会主动冲突,但这将是一个发展的噩梦。

对于您的特定应用程序,您将需要前端和后端才能使其正常工作。如果您正在尝试构建的应用程序是一个网站,那么请务必使用其中一个javascript框架,但如果您正在谈论Android或iPhone上的移动应用程序,则您不需要这些。

答案 2 :(得分:1)

只需扩展评论中的内容并澄清这些“框架”是什么:

您可以使用任意数量的框架,并且它们应该(如果它们已经写好)不会相互冲突。某些库可能存在问题,因为它们分配给特殊字符,例如$,因为javascript中已经使用了有限数量的特殊字符,这几乎是不可避免的但通常更成熟的框架已经识别出这一点,并且有书面工作即jQuery.noConflict基本上重新分配之前使用$的任何内容。

对于每个框架,都有负载,每个框架都有自己特定的特定利基/ API,适合特定的编程需求,例如:

Sizzle(在jquery中使用) - 用于maniuplating DOM的优秀选择器语法

jQuery - 优秀的插件架构,成熟的API,它完成了许多常见的编程需求,与jQuery UI结合使用时的优秀UI组件

Handlebars.js - 基于模板的dom操作+其他一些不错的MVVM(?)

Sproutcore.js,node.js ...等等 - 阅读每个内容并查看他们所说的框架目标。

您可以将它们混合在一起 - 您可能会发现偶然的冲突,您应该向作者报告但不要局限于一个框架。

答案 3 :(得分:1)

很容易被可用框架的范围所迷惑 - 现在看起来好像每个月都会进入时代精神。

关键是要使用适合你的那些,关键的是要理解并非所有的框架和库都做同样的事情。

例如,jQuery以DOM操作和AJAX为中心。是的,它有更多的方面,但这些是它的卖点。比较一下,比如Underscore.js,这就是为了丰富数据级API,更像是类似于PHP。毕竟,与这些语言相比,JavaScript具有传统上限制的API(尽管随着ECMA版本和特定于供应商的API一直在变得越来越丰富)。

Node.js,正如他在回答中提到的hackartist,与上述两者完全无关,因为它是服务器端,而不是客户端。

我会避免,特别是在您的早期阶段,使用多个焦点相似的库。您遇到了在jQuery UI和extJS中加载的项目。是的,这给了你更多的乐趣,但是,考虑到重叠,对页面的负载重量的负面影响超过了好处。选择一个你喜欢的外观,最重要的是,你感觉舒适的文档和社区。

最后,请记住,库和框架并不是真正相同的东西,尽管经常使用的术语有些不可思议地互换。他们都是引擎盖下的JS;一个库面向提供的功能和模式,至少通常意味着编写的代码少于用本机或“vanilla”JavaScript编写的代码,而框架则关注的是覆盖结构您的代码以及各个部分如何关联或互操作。