Javascript loaders

    A compilation of various JavaScript loaders, including their authors, sizes, and features, aimed at providing a starting point for research on web performance optimization tools.

    6/30/2025
    18 views
    javascript
    web performance
    loaders
    development
    open source
    This spreadsheet is hosted on Google Sheets. Open in Google Sheets to edit directly.
    Content article

    Dozens of JavaScript loaders are compared here based on features, size, licensing, and performance characteristics.

    In the "New data" tab, LABjs, authored by Kyle Simpson, has a minified size of 4.7 KB, while its minified and gzipped size is reduced to 2.2 KB. This loader supports loading JS files without blocking and can execute independent JS files in parallel, making it a strong contender for performance. HeadJS, created by Tero Piirainen, is slightly larger at 6.3 KB (minified) and 1.9 KB (minified and gzipped). It also supports loading JS files without blocking and has been tested for loading independent JS files in parallel. ControlJS, by Steve Souders, has a minified size of 3.6 KB and a gzipped size of 1.5 KB, providing similar capabilities in terms of loading without blocking and supporting parallel execution.

    RequireJS, developed by James Burke, is larger at 13 KB (minified) and 5.3 KB (minified and gzipped), yet it also offers the ability to load JS files without blocking and execute independent files in parallel. Load.js, authored by Chris O'Hara, is one of the smallest at 2 KB (minified) and 1 KB (gzipped), maintaining a strong feature set including the ability to load JS files without blocking and execute callbacks after loading scripts asynchronously.

    The licensing for these loaders varies, with most, including LABjs, HeadJS, and Load.js, adopting the MIT license. However, ControlJS uses the Apache 2.0 license, while RequireJS offers a choice between BSD and MIT licenses.

    When examining features, most loaders, including YepNope.js and LazyLoad, support loading JS files without blocking. However, some, like jQuery.defer.js, do not. The ability to execute independent JS files independently from the call order varies, with LABjs, HeadJS, and RequireJS supporting this feature, while others, such as Load.js, have limitations.

    In terms of size, the smallest loader is $script.js, which is only 1.4 KB minified and 643 B gzipped, making it an attractive option for developers concerned about load times. Conversely, NBL.js stands out with a minified size of 48 KB, which may deter some users looking for lightweight solutions.

    Moving to the "Warnings" tab, it is crucial to note that the comparison of these loaders comes with caveats. The list of features is not ranked by importance, and many features have drawbacks. For instance, while some loaders may allow for cross-domain JavaScript execution, they may also lead to issues with double loading. The data presented may contain inaccuracies, and users are encouraged to read the warnings carefully before making a choice.

    In the "OLD community data" tab, the information is marked as deprecated, directing users to the "New data" sheet for the most accurate and up-to-date information. This older data includes similar loaders with slightly different metrics, such as ControlJS, which is noted for its ability to load multiple JavaScript files in parallel and its support for defining dependencies.

    Comments

    SpreadableSheet is a platform for sharing and discovering spreadsheets. We do not own, review, or control the content of any sheets shared by users. All content is the sole responsibility of the uploader. If you have concerns about a particular sheet, please contact us.