javascript - 在路由器 Action 中加载组件与路由器初始化之前加载组件的优缺点

标签 javascript backbone.js cordova requirejs ria

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

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行)

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

    var HomeView = require("app/views/Home"),
        EmployeeView = require("app/views/Employee"),
        Employee = require("app/models/Employee");

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

        home: function() {
            var view = new HomeView({el: $content});
            view.render();
        },

        employee: function(id) {
            var employee = new Employee({id: id});
            employee.fetch({
                success: function (data) {
                    var view = new EmployeeView({model: data, el: $content});
                    view.render();
                }
            });
        }
   });
});

最佳答案

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

我觉得选项 1 更好。

关于javascript - 在路由器 Action 中加载组件与路由器初始化之前加载组件的优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21651052/

相关文章:

ios - 提交到应用商店 phonegap 应用图标问题

JavaScript Array.prototype.sort() 无法调用 DOM.HTMLLIElements

javascript - Ionic iOS8 表单域焦点导致页面滚动不正确

javascript - 当直接访问一个数组的javascript对象属性时,它显示为空

javascript - `this`里面的函数与函数无关?

android - 传单 map 图 block 不会在 Meteor Cordova 应用程序上加载

javascript - 主干集合唯一标识符/使用 socket.io 同步 MongoDB 集合

wcf - 如何重写 wcf 服务协定中的方法以允许不同的 Web 方法?

Backbone.js 集合大小 - 如果达到限制则不显示

cordova - 速度修复 : How to Remove the 300ms Delay in jQuery Mobile Apps