骨干的目的是什么.js?
我试图从其站点 http://documentcloud.github.com/backbone 了解骨干.js的效用,但我仍然无法弄清楚。
任何人都可以通过解释它是如何工作的来帮助我,以及它如何帮助编写更好的JavaScript?
我试图从其站点 http://documentcloud.github.com/backbone 了解骨干.js的效用,但我仍然无法弄清楚。
任何人都可以通过解释它是如何工作的来帮助我,以及它如何帮助编写更好的JavaScript?
Backbone.js基本上是一个超轻量级框架,允许您以MVC(模型,视图,控制器)方式构建Javascript代码,其中...
模型是检索和填充数据的代码的一部分,
视图是此模型的 HTML 表示形式(视图随模型更改而变化,等等)
和可选的控制器,在这种情况下,它允许您通过hashbang URL保存Javascript应用程序的状态,例如:http://twitter.com/#search?q=backbone.js
我在Backbone中发现的一些优点:
不再需要Javascript意大利面条:代码被组织并分解成语义上有意义的.js文件,然后使用JAMMIT进行组合
无需更多:无需在DOM中存储数据,而是将数据存储在模型中jQuery.data(bla, bla)
事件绑定工作正常
非常有用的下划线实用程序库
backbone.js代码有很好的文档记录,读起来很棒。让我看到了许多JS代码技术。
缺点:
以下是一组关于使用Bone with Rails作为后端的精彩教程:
CloudEdit: A Backbone.js Tutorial with Rails:
http://www.jamesyu.org/2011/01/27/cloudedit-a-backbone-js-tutorial-by-example/
http://www.jamesyu.org/2011/02/09/backbone.js-tutorial-with-rails-part-2/
p.s. 还有一个很棒的 Collection 类,可以让你处理模型集合和模仿嵌套模型,但我不想从一开始就让你感到困惑。
如果你打算在浏览器中构建复杂的用户界面,那么你可能会发现自己最终会发明大多数构成框架的部分,比如Backbone.js和Sammy.js。所以问题是,你是否在浏览器中构建了足够复杂的东西,值得使用它(所以你最终不会自己发明同样的东西)。
如果您计划构建的内容是UI定期更改其显示方式,但不转到服务器以获取全新的页面,那么您可能需要像Backbone.js或Sammy.js之类的东西。类似事情的主要例子是谷歌的GMail。如果你曾经使用过它,你会注意到当你第一次登录时,它会下载一大块HTML,CSS和JavaScript,然后一切都在后台发生。它可以在阅读电子邮件和处理收件箱之间移动,然后再次搜索并返回所有电子邮件,而无需要求呈现全新的页面。
正是这些框架擅长使开发更容易的应用程序。没有它们,你最终会把一组不同的独立库组合在一起,以获得部分功能(例如,用于历史管理的jQuery BBQ,事件.js事件等),或者你最终将自己构建所有内容,并且还必须自己维护和测试所有内容。相比之下,像Backbone这样的东西.js有成千上万的人在Github上观看它,数百个分叉,人们可能正在研究它,以及Stack Overflow上已经提出和回答的数百个问题。
但是,如果您计划构建的内容不够复杂,不值得与框架相关的学习曲线,那么这些都不重要。如果你还在构建PHP,Java或其他网站,后端服务器仍然根据用户的要求完成构建网页的所有繁重工作,而JavaScript / jQuery只是在这个过程上锦上添花,那么你不需要或还没有准备好骨干.js。