相当于Javascript中的类加载器

Equivalent of a class loader in Javascript

本文关键字:类加载 Javascript 相当于      更新时间:2023-09-26

Java中,类加载器将Java类动态加载到JVM中。在Javascript中,我经常遇到对卸载的依赖项进行调用的问题,因为加载是异步完成的。

我使用Angular JS框架。例如,一个页面依赖于API,但调用时出现错误Cannot read property 'realestate' of undefined

gapi.client.realestate.get(propertyId).execute(function(resp) {
                    console.log(resp);
                });

因为API没有被加载。装载由完成

loadRealEstateAPI = function() {
    var ROOT = 'http://localhost:8888/_ah/api';
    gapi.client.load('realestate', 'v1', function() {
        console.log("Real Estate API loaded");
        $rootScope.$broadcast("reAPILoaded", true);
    }, ROOT);
}

我想知道是否有一个JS库可以让应用程序在加载所有依赖项时启动。

RequireJS正是这样做的,它允许您定义依赖项,然后只在加载依赖项后执行代码。如果你使用的是类似于Google Maps API的东西,它加载了自己的多个依赖项,甚至还有一个插件会等待所有第三方依赖项的加载。

有一篇简短的文章向您展示了如何将AngularJS与RequireJS集成。此外,Require还附带了一个优化器,您可以在部署构建过程中运行该优化器,将所有本地文件编译为一个文件。

我写了一个工具,基本上就是这样做的。它检测并管理您的解析时间依赖关系以及通常的运行时依赖关系。

它在这里:http://damonsmith.github.io/js-class-loader/

它是一个基于java的javascript绑定器和依赖性检测器,不是"我想把jquery添加到我的网站"中的依赖性,而是"我想管理一个由开发团队编写的运行时和解析时间依赖性的大型OO风格javascript代码库"它的设计目的是在java web应用程序和IDE中非常简单快速地安装和配置,它也适用于非java应用程序。一旦它安装在您的构建或服务器中,您就不必担心它了。