Comment réaliser le chargement paresseux avec RequireJS?

Nous construisons un non-trival application web à l'aide de la Dorsale, RequireJS et le Guidon, et bien, je suis juste curieux. À l'heure actuelle, chacun de nos modèles sorta ressemble à ceci:

define(['Backbone', 'js/thing/a', 'js/thing/b', 'js/lib/bob'], function(a, b, bob) {
  return Backbone.Router.extend({
    //stuff here
  });
});

où la chose/une chose/b disposent de leurs propres dépendances, par exemple sur les poignées des modèles, etc. Ce qui se passe maintenant c'est que dans ma main.js tous les "haut-niveau" routeurs sont chargé et initialisé; chaque haut-niveau routeur dispose d'un ensemble de dépendances (modèles, vues, etc) qui ont chacun leurs propres dépendances (modèles, des assistants, utils, etc). Fondamentalement, un grand arbre de la structure.

Le problème dans ce cas est que cette totalité de l'arbre est résolu et chargés sur le chargement de la page. Je n'ai pas l'esprit que les per-sé, comme nous allons le lancer à travers l'optimiseur par la suite et jusqu'à la fin avec un gros fichier unique (réduction de RequireJS pour l'essentiel à une modularisation cadre). Cependant, je suis curieux de savoir si vous pouvez charger des trucs comme les vues et les modèles "à la demande".

Il y a le "simplifié CommonJS d'emballage", a expliqué ici, j'ai donc essayé:

define(function(require) {
  Backbone = require('Backbone');
  return Backbone.Router.extend({
    doStuff: function() {
      var MyView = require('js/myView');
      new MyView().render();
    }
  });
});

Cependant, en regardant Chrome réseau de l'inspecteur, il semble que RequireJS - de toute façon, même sans le déclenchement de la route qui déclenche la doStuff gestionnaire - charge toujours la myView de dépendance. Questions:

  • Est-ce réellement possible? Sont là, noir magicks dans RequireJS qui ressemble à des appels à require() sans réellement le déclenchement de la doStuff route?
  • Est-ce la théorie façon correcte de le faire "à la demande", le chargement paresseux de RequireJS des modules et des ressources?
  • La r.js optimiseur de toujours travailler comme annoncé si vous utilisez cette notation?
InformationsquelleAutor fwielstra | 2012-06-06