`

利用BackboneJS更好组织jQuery应用的架构(三)

 
阅读更多
屏幕录像
玩转Backbone.js
http://tekpub.com/products/backbone
这是Rob Conery对学习如何使用Backbone.js构建一个SPA的过程的遍历。循着这条历程,他展示了许许多多通常都会遇到的陷阱和问题,以及如何解决它们。在这个系列结束的时候我也做了下展示,来介绍我的MarionetteJS应用程序框架。
BackboneRail.com
http://backbonerails.com/
Brian Mann有一系列的Backbone.js屏幕录像,主要涵盖了大型Backbone.js应用程序的伸缩性及管理。他还有大量的免费作品和收费作品,涵盖了从SPA历史,到构建可伸缩系统以及更多的所有东西。
Backbone.js上手
http://pragprog.com/screencasts/v-dback/hands-on-backbone-js
我的学习Backbone.js的系列屏幕录像。在这里面使用的Backbone.js版本已经过时了,但是其核心概念里面都有,而且这些内容仍然有用。如果你是一个靠视觉的学习者并且想要跟着示范一步一步做,那这就很适合你。
应用程序框架
来自Backbone.js社区最棒的贡献之一就属应用程序框架了。有大量这样的框架提供用于构建更大型的伸缩式应用程序框架的附加特性和功能。这些大多数都是很流行的,而我则强烈建议你看看它们,如果你计划在使用其实现几个简单的对象之外还要用Backbone.js做任何其它更多事情的话。
MarionetteJS
http://marionettejs.com/
原来以Backbone.Marionette而闻名,MarionetteJS是一个面向Backbone.js复合应用程序架构,也在我自己的数十个客户端应用程序工作中被使用,还被全世界的开发者用来构建了数以百计的其它系统。它提供了一个特殊化的View抽象层(ItemView,CollectionView, CompositeView),提供了使用一个Layout来构筑视图内部的能力,一个应用程序引导器,一个简单的模块系统,已经更多的东西。
LayoutManager
http://layoutmanager.org/
LayoutManager用于在Backbone中组装布局和视图的逻辑基础设施。Tim Branyen —— 他是Backbone.js项目的骨干贡献人员——构建了一个基于约定来快速创建应用程序布局和内部视图架构的框架。它在浏览器和服务器端的NodeJS中都能工作,在其使用场景中提供了许多灵活性。
ChaplinJS
http://chaplinjs.org/
ChaplinJS提供了基于Backbone构建Javascript应用程序的架构指引。ChaplinJS通过提供一种其特性在设计模式和最佳实践中都得到了良好验证的轻量且灵活的架构来解决Backbone的局限。它是通过在其实现中使用Coffeescript来做到的,而它仍然可以在Javascript中被使用。Chaplin的控制器和路由器管理值得一看究竟,即使你现在正使用着另外一个应用程序框架。
Thorax
http://thoraxjs.org/
Thorax是一个信心满满,久经考验的用于构建大型伸缩式web应用程序的Backbone+Handlebar框架。 Thorax的生命开始于Wal-Mart实验室,用于支持这个实验室在移动领域的尝试。其同Handlerbar在模板渲染上的紧密集成提供了一种风格独特的构建Backbone.js应用程序的方式,看上去比大多数Backbone.js框架更像是真正的MVC。
Aura
http://addyosmani.github.io/aura/
Aura是一个基于Backbone.js解耦的,事件驱动的架构,用于开发基于小组件的应用程序。一开始只是一个Backbone的应用程序框架,由于其也有同其它MV*库协同工作的能力,Aura开启了其新的生命。Aura采用基于小组件开发的方式,而其应用程序就使用那些组件组装而成。它集成了大量Javascript的社区知识,还有多年的大型可伸缩Javascript系统的扩展经验。
其它插件和附件
还有数以百计的涵盖了从内嵌模型架构,到特殊的服务器API的其它插件可供使用。想要得到更多Backbone.js社区所提供的东西的完整列表,请访问Backbone.js的关于其扩展,插件和资源的维基页面。
Derick Bailey
列表1: 点击保存按钮并将数据传送到服务器.
$("#save").click(function(e){
  var formData = {
    name: $("#name").val(),
    photo: $("#photo").val(),
    email: $("#email").val(),
    phone: $("#phone").val(),
    notes: $("#notes").val()
  };

  $.ajax({
    url: "/contacts",
    type: "POST",
    dataType: "JSON",
    data: formData,
    success: function(){
      updateList(formData);
      clearForm();
    }
  });
});


列表2: 定义了一个列出联系人的视图

var ContactListView = Backbone.View.extend({
  template: "#contact-list-template",

  // tell this view it is rendering a list
  tagName: "ul",

  // render the list of contacts by iterating
  // over the view's collection, and rendering
  // for each of the models in the collection.
  // add the results to an array and stuff the
  // array in to the view's $el when it's done.
  render: function(){
    var results = [];

    var compiledTemplate = _.template(this.template);

    this.collection.each(function(contact){
      var html = compiledTemplate(contact.toJSON());
      results.push(html);
    });

    this.$el.html(results);

    return this;
  }

});
列表3: 显示联系人列表视图
var contacts = new ContactCollection([
  {
    id: 1,
    name: "Derick Bailey",
    email: "derick@example.com",
    url: "http://mutedsolutions.com",
    notes: "just some guy"
  }, {
    id: 2,
    name: "Ian Bailey",
    email: "ian@example.com",
    url: "",
    notes: "the most awesome little man, ever"
  }, {
    id: 3,
    name: "Ashelia Bailey",
    email: "ashe@example.com",
    url: "http://example.com/ashe",
    notes: "the best ballerina in the universe"
  }
]);

var contactList = new ContactListView({
  collection: contacts
});

$("#contact-list").html(contactList.render().$el);
列表4: 新增一个联系人时,显示一个视图.
var ContactListView = Backbone.View.extend({

  // the initialize method executes just
  // after the view is instantiated
  initialize: function(){
    this.listenTo(this.collection, "add", this.contactAdded);
  },

  // handle a contact being added
  contactAdded: function(contact){
    this.render();
  },

  // ... existing methods and config
});

本文转自:开源中国社区 [http://www.oschina.net]
本文标题:利用 BackboneJS 更好的组织 jQuery 应用的架构
本文地址:http://www.oschina.net/translate/structuring-jquery-with-backbone-js?lang=chs&page=5#
参与翻译:LeoXu, super0555, yale8848, ley, 竟悟, tnjin, carrottee
英文原文:Structuring jQuery with Backbone.js

原文:http://www.linuxeden.com/html/news/20131112/145443_3.html
分享到:
评论

相关推荐

    orgchart.js 组织架构图之JQuery插件

    组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件组织架构图之JQuery插件...

    jQuery实现公司组织结构图

    7. **插件利用**:虽然可以直接用jQuery编写组织结构图,但市场上已有许多现成的jQuery插件,如`orgchart.js`,它们提供了更丰富的功能和自定义选项。使用这些插件可以快速实现复杂的组织结构图,减少开发时间和工作...

    jQuery企业组织架构图代码.zip

    三、jQuery实现组织架构图 1. 数据结构:首先,我们需要定义一个数据结构来存储组织架构信息,通常是一个嵌套的对象或数组,表示各个部门和员工之间的关系。 2. HTML布局:基于数据结构,使用HTML创建一个基础的布局...

    jQuery技术内幕 深入解析jQuery架构设计与实现原理

    《jquery技术内幕:深入解析jquery架构设计与实现原理》由阿里巴巴资深前端开发工程师撰写,从源代码角度全面而系统地解读了jquery的17个模块的架构设计理念和内部实现原理,旨在帮助读者参透jquery中的实现技巧和...

    jquery生成竖向的组织架构图

    总结来说,利用jQuery和特定的库如`jOrgChart`,我们可以轻松地创建一个竖向的组织架构图,以直观地呈现层次结构。这个过程涉及HTML结构的规划、jQuery库的引用、数据模型的构建以及可能的用户交互设计。确保正确...

    jQuery应用程序架构设计工具

    为了更好地支持MVC架构,开发者可以利用以下库: - **JavaScriptMVC**:一个轻量级的框架,提供了MVC的基本功能,并且易于集成到现有项目中。 - **Backbone.js**:非常流行的MVC库之一,提供了一个强大的数据绑定...

    jquery.jOrgChart空间实现组织架构图

    同时,为了提供更好的用户体验,可以结合Ajax技术,从服务器获取最新的组织结构信息,实时更新图表。 `example`文件可能包含了`jQuery.jOrgChart`的示例代码和数据,用于演示如何在项目中应用这个插件。通过查看...

    jQuery组织结构图表插件OrgChart.zip

    通过深入学习和实践,开发者可以利用jQuery组织结构图表插件OrgChart创建出直观、互动性强的组织架构图,满足各种业务需求,无论是展示公司架构、项目团队,还是用于教学演示,都能发挥其强大的作用。

    OrgChart-简单实用的组织结构图表jQuery插件

    OrgChart是一款专为构建组织结构图表而设计的jQuery插件,它简化了在网页中创建可视化组织架构的过程。这个插件充分利用DOM元素、jQuery选择器和CSS3的过渡效果,提供了一种高效且美观的方式来展示人员关系和层级...

    jQuery横向企业组织架构图特效.zip

    "jQuery横向企业组织架构图特效"是一个高效且易于定制的解决方案,它利用jQuery库的强大功能和CSS的灵活性,将复杂的组织结构以直观的方式呈现出来。本文将深入探讨这一特效的实现原理和关键知识点。 一、jQuery库...

    jQuery技术内幕:深入解析jQuery架构设计与实现原理

    资源名称:jQuery技术内幕:深入解析jQuery架构设计与实现原理内容简介:本书首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jQuery的工作原理有大致的印象;进而通过“构造 jQuery 对象”章节...

    三大框架AngularJS、BackboneJS和EmberJS对比.pdf

    框架大小和性能方面,AngularJS虽未经压缩的源码较大,但依赖较少,实际应用中可能比BackboneJS和需要jQuery的EmberJS更轻量。模板方面,AngularJS和EmberJS内置了模板引擎,而BackboneJS需要集成第三方模板引擎,如...

    jQuery ui基于myflow.js绘制流程图插件,自定义组织架构图图表,拖拽绘制组织架构图表代码.zip

    在本项目中,jQuery UI与myflow.js结合,利用jQuery UI的拖放功能,实现了用户可以通过鼠标拖拽来构建和调整组织架构图。myflow.js的节点和边的管理能力,使得用户可以自由地创建分支、设定节点状态,进一步定制流程...

    jquery应用实例

    通过实践这些应用实例,你将能够更好地理解和运用jQuery,提升开发效率,打造更优秀的用户体验。实例下载提供的文件可以帮助你更直观地学习和体验jQuery的威力,建议配合源代码一同研究,加深理解。

    组织树插件,web版可收缩组织树插件,jquery,组织架构图, OrgChart-master

    利用jQuery,开发者可以高效地创建动态、交互式的组织树。描述中提到的链接(https://blog.csdn.net/q290108231/article/details/85986632)提供了一个教程,教我们如何用几行代码实现组织树插件。这显示了jQuery的...

    backbone-firebase-jquerymobile-skeleton:使用backbonejs、firebasebackbonefire、jquery mobile和requirejs的单页应用程序框架

    使用backbonejs、firebase/backbonefire、jquery mobile和requirejs的单页应用程序框架。 这个框架使用了最好的开源 Javascript 库和框架,如下所示: 框架/库 版本 jQuery 2.1.1 jQuery 移动版 1.4.5 主干JS ...

    JQUERY技术内幕:深入解析QUERY架构设计与实现原理 完整版 共两个包

    深入解析jquery架构设计与实现原理》首先通过“总体架构”梳理了各个模块的分类、功能和依赖关系,让大家对jquery的工作原理有大致的印象;进而通过“构造jquery对象”章节分析了构造函数jquery()的各种用法和内部...

    jQuery简单应用实例

    通过这个简单的实例,我们不仅学习了如何使用jQuery在页面加载时显示欢迎消息,更重要的是,我们理解了jQuery与传统JavaScript在事件触发机制上的区别,以及如何利用jQuery的特性来优化代码,提高网页性能和用户体验...

    asp.net2.0+jquery+三层架构网络相册

    asp.net 三层架构 网络相册 1.使用vs2010开发,发布的平台版本是.net 2.0,如果大家没有vs2010,可以用其他版本的vs新建工程再重新添加代码进去. 2.图片是保存在数据库的,使用的是access数据库. 3.使用flash作为无刷新...

    前端横向组织架构图 js

    在构建组织架构图时,jQuery可以帮助我们更高效地选择DOM元素、绑定事件和执行动画。 3. **组织架构图的实现**: - 数据结构:首先,我们需要定义一个数据结构来表示组织架构,通常可以使用JSON对象,其中包含节点...

Global site tag (gtag.js) - Google Analytics