0

バックボーンとrequirejsを使ってアプリを開発しています。アプリを次のように構成しました。

  1. を持つメインの index.html ファイル<script data-main="app.js" src="vendor-libraries/require.js"></script>
  2. app.js では、次のようにします。

    require.config({
    
        paths:{
    //all paths here
    },
    
    shim: {
        // all shims here
        },
        }
     });
    
         require(['jquery',
     'Backbone',
     'views/master',
     'views/dashboard',
     //all other views are loaded as dependencies here...
    
     ],function($,Backbone,masterView,dashboardView, .....){
    
         var Router=Backbone.Router.extend({
             routes:{
                  "":"loadDashboard",
                  "home":"loadDashboard",
                  //all routes paths go here
                },
    
            initialize:function(){
            this.children={
            dashboardView: new dashboardView(),
            //all views initialized as the dashboard view
            }
        },
    
        loadDashboard: function(){
        this.children.dashboardView.render();
        },
    
        //functions for all routes here...
    
        });
    
    var router = new Router();
    var view=new masterView();
    Backbone.history.start();
    

    });

  3. マスター ビューでは、ボタンをクリックしてそれぞれのビューに移動するだけです。

今、私はこのアプリを使い始めたばかりですが、上記のワークフローに従うと、すべてのビュー ファイルが一度に読み込まれる可能性があるのではないかと心配しています。そして、すべてのビューで、いくつかのテンプレートがロードされています。では、ページのレンダリング前にすべての HTML がロードされることになるのでしょうか? はいの場合、上記のアプローチで何を変更する必要がありますか?

4

1 に答える 1

1

ページにロードするものが多すぎる場合は、必要に応じてビューファイルを要求することができます。

たとえば、Userlist ビューがあるとします。これは、ルーターから次の方法でロードできます。

routes: {
    ...
    'userslist' : 'loadUsersList'
}

loadUsersList: function() {

    require('views/userslist',function(UserListView) {

        UserListView.render();
    });

}
于 2013-03-13T10:00:11.090 に答える