backbone.js为什么需要在所有js文件中加载脚本

时间:2013-07-08 12:07:31

标签: javascript jquery backbone.js underscore.js

我是backbone.js的新手。所以我需要回答以下问题才能理解使用它的结构..

我的理解是,一旦加载了基本模板,我们就需要使用views / js文件来获取其他的html ..

1.但是一旦我使用require从main.js文件加载jquery,为什么我需要再次在视图中定义它... 2.如果在我的视图js文件中,如果我需要包含一个新的js文件,那么是否正在向服务器发出请求?

例如:

   define([
     'jquery',
     'underscore',
     'backbone',
     'text!templates/list1.html',

     ], function( $, _, Backbone,  index, Constants ) {
     ....
     ....
     });

以下是我的代码结构

     js
     |-- collections
     |   |-- camp.js
     |
     |-- constants.js
     |-- data.json
     |-- main.js
     |-- models
     |   |-- camp.js
     |-- routers
     |   `-- router.js
     |-- templates
     |   |-- camp.html
     |-- vendor
     |   |-- backbone
     |   |   |-- backbone.js
     |   |   `-- backbone.localStorage.js
     |   |-- bootstrap.js
     |   |-- bootstrap.min.js
     |   |-- codemirror
     |   |   |-- addon
     |   |   |   |-- closebrackets.js
     |   |   |   |-- dialog.js
     |   |   |   |-- matchbrackets.js
     |   |   |   |-- match-highlighter.js
     |   |   |   |-- searchcursor.js
     |   |   |   `-- search.js
     |   |   |-- codemirror.css
     |   |   |-- codemirror.js
     |   |   |-- hint
     |   |   |   |-- javascript-hint.js
     |   |   |   |-- show-hint.css
     |   |   |   `-- show-hint.js
     |   |   |-- mode
     |   |   |   `-- javascript.js
     |   |   `-- themes
     |   |       `-- solarized.css
     |   |-- jquery
     |   |   `-- jquery.min.js
     |   |-- jquery-1.9.1.min.js
     |   |-- jquery-ui-1.10.0.custom.min.js
     |   |-- jquery-ui-1.10.1.custom.css
     |   |-- jqueryuicustom.min.js
     |   |-- modernizr-2.6.2-respond-1.1.0.min.js
     |   |-- require
     |   |   |-- require.js
     |   |   |-- require.min.js
     |   |   `-- text.js
     |   |-- require.js
     |   `-- underscore
     |       `-- lodash.min.js
     `-- views
         |-- camp.js

1 个答案:

答案 0 :(得分:0)

  1. RequireJS旨在保持全局范围的清洁。您正在定义具有显式依赖关系的模块。您需要将jQuery,Backbone等定义为您编写的每个模块的依赖项。 RequireJS会自动确定需要获取的顺序。

  2. 是的,会有往返,但它由RequireJS管理,它将在执行模块(视图)的代码之前发生。如果您担心提取的文件数量,请查看文档[1]。

  3. [1] http://www.requirejs.org/docs/optimization.html