AngularJS Dependency Injector after bootstrap

Benchmark created by Dan Mindru on


Preparation HTML

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.4/angular.js"></script>

function applicationBootstrap() {
    angular.bootstrap(document, ['abs']);
}

angular.element(document).ready(applicationBootstrap);

Setup

var absConfigNormal = (function applicationInit() {
      var appRootModuleName = 'abs';
      var appMainVendorDependencies = ['abs.feature.about'];
    
      return {
        appRootModuleName: appRootModuleName,
        appMainVendorDependencies: appMainVendorDependencies
      };
    })();
    
    var absConfigLater = (function applicationInit() {
      var appRootModuleName = 'abs';
      var appMainVendorDependencies = [];
      var pushAfterBootstrap = function pushAfterBootstrap(lateModule) {
        angular.module(lateModule, []);
        angular.module(appRootModuleName).requires.push(lateModule);
      };
    
      return {
        appRootModuleName: appRootModuleName,
        appMainVendorDependencies: appMainVendorDependencies,
        pushAfterBootstrap: pushAfterBootstrap
      };
    })();

Test runner

Ready to run.

Testing in
TestOps/sec
'Normal' injection
angular.module(absConfigNormal.appRootModuleName, absConfigNormal.appMainVendorDependencies);
angular.module('abs.feature.about', []);
ready
Injection after bootstrap
angular.module(absConfigLater.appRootModuleName, absConfigLater.appMainVendorDependencies);
absConfigLater.pushAfterBootstrap('abs.feature.about');
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.

  • Revision 1: published by Dan Mindru on