2013-03-27 5 views
8

私はインターネット上の多くの例を見て、requireJSを使ってBBアプリケーションを開発する方法を見ましたが、私は一種の迷子です。バックボーンとRequireJSの有効なローディング

AMDには、本当に必要な場合にのみファイルをロードするという目標があります。遅かれ早かれ。

なぜ私は、開発者が主ファイルの冒頭にほとんどすべてのファイルを依存関係として置いているだけの例を見ていますか?ここで

は一例です: https://github.com/jcreamer898/RequireJS-Backbone-Starter/tree/master/js

このアプリケーションは瞬時に/ビュー/ビューのテンプレートをロードしview.jsとモデルを必要とルータ/ home.jsをロードするapp.jsに依存main.jsをロードしますmodel.js ...そして終了。

ビューの依存関係(モデル、テンプレート、コレクション、サードパーティAPIなど)がロードされ、初期化されたときにのみビューがより多くのビューでこのアプリケーションを拡張する方法はわかりません。他の方法では、これはあなたのアプリケーションを初期化するときにすべてのファイルを読み込むAMDを使うのはナンセンスでしょう。

ここに同様の例: ルータはユーザがそれらを必要とするかどうかはまだ分かりませんがhttp://backbonetutorials.com/organizing-backbone-using-modules/ はrouter.js file.Actuallyそれ負荷の見解/プロジェクト/リスト」と「ビュー/ユーザー/ list」の依存関係を参照してください未来かどうか

事前に感謝してください!

答えて

6

それはあなたが最初のルート上に何かをロードする必要があるため、このような小さなサンプルアプリで見ることが少し難しい、とバックボーンに何かをロードすることは、通常モデル、コレクション、およびビューを意味します。リンクしたサンプルにはそれぞれのサンプルが1つしかないので、ほとんどすべてをロードしています。

「オンデマンド」機能が表示される場所は、ルート/ビュー/モデル/などを追加する場所です。しかし、オンデマンド・ローディングは恐らくAMD/RequireJSの第2の目標であることに留意してください。主な目標はmodularityです。彼らはその後、オンデマンドで物をロードするか、すべてを束ねるためのたくさんのオプションを提供します。the optimizer

また、ファイルの先頭にすべてのrequire()を入れなければならないということは何もありません。後で行うことができます(ルートの開始時など)。最初にリンクされた例のhome.jsの修正版です。 Chromeの開発ツールを使用している場合は、[デバッガ]が表示されているときにネットワークタブを見ることができます。文は実行を一時停止します。その後、実行を続けて残りのスクリプトがどのようにロードされるかを見てください。

define([ 
    'jquery', 
    'backbone', 
    'underscore' 
    ], 
function($, Backbone, _){ 
    var Router = Backbone.Router.extend({ 
     initialize: function(){ 
      Backbone.history.start(); 
     }, 
     routes: { 
      '': 'home' 
     }, 
     'home': function(){ 
      debugger; 
      require(['views/view'], function (mainView) { 
       mainView.render(); 
      }); 
     } 
    }); 

    return Router; 
}); 

this person's articleを参照してください。詳細については、こちらを参照してください。

+0

さらに多くのビューがあり、アプリケーションロジックにこのオンデマンドポイントがまだないという別の例を追加しました。 – zsitro

+0

ありがとう!あなたの例と記事は私を助けました。 – zsitro

+0

パーフェクト。すべてのルートに1トンのファイルがロードされていました。今、物事は一緒にジッパーです!ありがとう! – matthoiland

関連する問題