2

我正在构建一个新的 Web 应用程序,该应用程序将包含完全不同的界面/用户体验,具体取决于刚刚验证/登录的用户类型。让我们称这些用户为管理员和代表。

管理员和代表在此应用程序中具有完全不同的功能。我的模块中只有一小部分会被两者使用。它本质上是连接到我的后端的两个不同的客户端应用程序。

我是否应该使用优化器创建两个不同的构建文件RequireJS,然后根据用户执行登录时服务器返回的内容将它们中的任何一个注入页面?或者我应该更多地关注requirejs的动态模块加载,只在需要时加载我需要的模块(因此会遇到很多额外的http请求:/)

4

1 回答 1

2

我们有一个 Backbone 应用程序,它共享大量视图和模型,但并非所有客户端都具有所有导航点,并且某些模型的行为不同。

因此,首先我们为每个客户端设置一个 require 入口点和一个 require.config。

引导-client1.js

requirejs.config({
  baseUrl: 'js/cfe/app',
  paths: {
    'common/ViewA': 'clients/client1/ViewA',
    'common/ModelB': 'clients/client1/ModelB',
    'common/ColletionC': 'clients/client1/CollectionC'
  }
});

requirejs([
  'common/App',
  'common/BaseSetup'],

  function(app, BaseSetup) {
    $(function() {

      BaseSetup.start();

      app.start();
    });
  }
);

因此,稍后当我们使用需要ModelB它的共享视图时,将替换为我们的client1/ModelB实现。

对于生产,我们使用 r 编译器为每个客户端构建一个单独的编译版本,并data-main在客户端请求 html 文件时更改 html 文件中属性的来源。

于 2013-03-14T07:33:37.860 回答