在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库让应用程序在加载所有依赖项时启动。
答案 0 :(得分:2)
RequireJS does exactly this允许您定义依赖项,然后只在依赖项加载后执行代码。如果您使用的是Google Maps API,它会加载自己的there is even a plugin的多个依赖项,这些依赖项将等待加载所有第三方依赖项。
有一个short write-up that shows you how to integrate AngularJS with RequireJS。作为额外的好处,Require comes with an optimizer可以作为部署构建过程的一部分运行,以将所有本地文件编译为单个文件。
答案 1 :(得分:0)
我写了一个基本完全正确的工具。它可以检测和管理您的解析时依赖关系以及通常的运行时依赖关系。
它在这里: http://damonsmith.github.io/js-class-loader/
它是一个基于java的javascript捆绑器和依赖检测器,而不是像“我想将jquery添加到我的网站”中的依赖项,而是依赖于“我想管理一个非常大的OO风格的javascript代码库的运行时和解析由开发团队编写的时间依赖性“ 它旨在非常简单快速地安装和配置到Java Web应用程序和IDE中,它也适用于非Java应用程序。一旦它安装在您的构建或服务器中,您根本不需要担心它。