我正在尝试做一些动态加载,包括 javascript、css 和 html 文件。
我想这样做:
$.when($.ajax(htmlPath), $.get(cssPath), $.ajax({
url: javascriptPath,
dataType: "text"
}))
.done(function(response){
// i want to pass the data for each of these to the respective functions
appendHtml(what goes here??);
appendCss(what goes here??);
executeJs(what goes here??);
})
.fail(function(){
console.log("failed");
});
所以我对如何分离响应回调感到困惑。目前,您在我的 .done 函数中看到的响应对象只是我调用的 HTML 文件。这个函数进行了正确的ajax调用,并且正确的文件都被服务器响应了,但是一旦所有的调用都完成了,我该如何访问它们呢?需要这个,所以我不会将 css/js 应用于尚不存在的 HTML,等等。此外,我所做的是将 javascript 文件作为字符串返回,然后在 executeJs 函数中对其进行 eval()。我的理解是,这是可以使用 eval 的,因为它是由我们自己的服务器返回的文件,所以我看不出它是如何被篡改的。这个假设正确吗?
此外,在我的 appendCss 函数中,我只是将它添加到头部的“样式”元素中。这有什么大问题吗?我正在使用所有这些来制作“基于小部件/应用程序”的功能,其中每个“应用程序”都有一个 js、css 和 html,我只想在需要它们并且应用程序正在加载时查询服务器.