javascript - Backbone.js 和 jQuery

标签 javascript jquery backbone.js javascript-framework

据说 Backbone 处理所有更高级别的抽象,而 jQuery 或类似库处理 DOM、规范化事件等。

有人可以用任何简单的实际例子帮助我理解这个陈述。

Backbone、Knockout 等 MVC 框架的另一个重要特性是它使模型(数据)和 View 保持同步。但这似乎是特定于页面级别的,而不是整个应用程序。那么我们可以跨多个页面同步模型/数据和 View 吗..(有点全局)

最佳答案

Backbone/Knockout 通常用于单页应用程序。因此,虽然 jQuery 是一个可以与任何网页一起使用的工具箱,但 Backbone 是为特定类型的应用程序设计的,它可以帮助您组织代码。至少根据我的经验,构建单页应用程序的最大挑战之一是保持代码干净和模块化,而主干在这方面有很大帮助。

典型的 Backbone 应用程序的特点是:

  • 本质上是静态的 html 页面,服务器上没有生成任何内容
  • 服务器充当 json REST api,为应用程序提供内容
  • 显示数据的 dom 元素是在主干 View 中使用 javascript 创建的,使用 jQuery 和各种模板库来帮助
  • 与服务器以及应用程序不同部分之间的通信是通过主干模型完成的

  • 关于在多个页面之间保持数据同步的问题,我本能的回答是您不需要多个页面:用户可能会感觉到页面正在变化,由于 pushState 功能,url 栏中的地址发生了变化,但从技术上讲整个应用程序是一页。

    这种方法的最大优点是流畅的用户体验(无需重新加载页面),良好的缓存支持,因为除了 json 数据之外的所有内容都是静态内容,对于移动目标,可以将 Web 应用程序变成带有 phoneGap 的移动应用程序(因为除了 json 之外的所有内容都是静态的)。

    关于javascript - Backbone.js 和 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9715295/

    相关文章:

    javascript - D3.js 可折叠强制布局,默认折叠

    javascript - 匹配 <tr> 标签的正则表达式只匹配表中的第一个和最后一个 <tr>

    javascript - 在窗口调整大小时调整子 div 元素的大小以适应父 div

    data-binding - 究竟什么是绑定(bind)?

    backbone.js - RequireJs:使用带有 shim 的 autoloading-deps

    javascript - 渲染 subview 时主干 View 中没有 $(this.el)

    javascript - Tropo 设置语音不起作用?

    Javascript 原型(prototype)继承与 object.create 和 call 没有给出函数错误

    javascript - 使用 JavaScript 在另一个字符串的多个位置插入字符串

    javascript - 错误 : ReCAPTCHA placeholder element must be empty