Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在路由器操作中加载组件与在路由器初始化之前加载组件的优缺点_Javascript_Backbone.js_Cordova_Requirejs_Ria - Fatal编程技术网

Javascript 在路由器操作中加载组件与在路由器初始化之前加载组件的优缺点

Javascript 在路由器操作中加载组件与在路由器初始化之前加载组件的优缺点,javascript,backbone.js,cordova,requirejs,ria,Javascript,Backbone.js,Cordova,Requirejs,Ria,这样做的缺点/优点是什么: define(function(require) { var $ = require('jquery'), Backbone = require('backbone'), $content = $("#content"); return Backbone.Router.extend({ routes: { "": "home", "employees/:i

这样做的缺点/优点是什么:

define(function(require) {
    var $ = require('jquery'), Backbone = require('backbone'), $content = $("#content");

    return Backbone.Router.extend({
        routes: {
            "":                 "home",
            "employees/:id":    "employee"
        },

        home: function() {
            require(["app/views/Home"], function (HomeView) {
                var view = new HomeView({el: $content});
                view.render();
            });
        },

        employee: function(id) {
            require(["app/views/Employee", "app/models/Employee"], function (EmployeeView, Employee) {
                var employee = new Employee({id: id});
                employee.fetch({
                    success: function (data) {
                        var view = new EmployeeView({model: data, el: $content});
                        view.render();
                    }
                });
            });
        }
   });
});
在这上面:

define(function(require) {
    var $ = require('jquery'), Backbone = require('backbone'), $content = $("#content");

    return Backbone.Router.extend({
        routes: {
            "":                 "home",
            "employees/:id":    "employee"
        },

        home: function() {
            require(["app/views/Home"], function (HomeView) {
                var view = new HomeView({el: $content});
                view.render();
            });
        },

        employee: function(id) {
            require(["app/views/Employee", "app/models/Employee"], function (EmployeeView, Employee) {
                var employee = new Employee({id: id});
                employee.fetch({
                    success: function (data) {
                        var view = new EmployeeView({model: data, el: $content});
                        view.render();
                    }
                });
            });
        }
   });
});
(注意第4-6行)


选项2将在应用程序启动时将所有依赖项加载到内存中(无论是否使用);选项1将在调用路由和需要模块时动态加载依赖项

选择1对我来说似乎更好