Javascript 在另一个js文件中等待ajax调用

Javascript 在另一个js文件中等待ajax调用,javascript,php,ajax,jquery,Javascript,Php,Ajax,Jquery,我有两个js文件。这些是简化版(实际上有很多代码) ucyg.js 此文件包含在页面ucyg.php-此页面通过Ajax调用加载到我的index.php。 它的代码是 var Ucyg = function(){ var load = function() { return $.get('Ajax/listado_ucyg.php', { // some get parameters }).done(function(dat

我有两个js文件。这些是简化版(实际上有很多代码)

ucyg.js

此文件包含在页面
ucyg.php
-此页面通过Ajax调用加载到我的
index.php
。 它的代码是

var Ucyg = function(){

    var load = function() {
    return $.get('Ajax/listado_ucyg.php', {
                   // some get parameters
        }).done(function(data) {
            // some DOM manipulation with Data 
        });
    };

     return {
        load: load
     }
};

    $(document).ready(function() {
        var ucyg = new Ucyg(); 
        ucyg.load();
    });
因此,我的ajax调用返回包含此文件的
ucyg.php
(澄清一下:在我的
index.php
ucyg.php
的ajax调用返回之前,文件ucyg.js不会加载到我的浏览器中),当它准备好时,它会执行另一个ajax调用以带来
listado\u ucyg.php

另一个

item.js

在代码的某些部分中,我需要与ucyg.php中的内容非常相似的东西,但需要进行一些修改。因此,我想引入
ucyg.php
作为ajax调用,然后进行必要的修改。就这样,

    $.ajax({
                type: 'post',
                url: 'Ajax/ucyg.php',
                success: function(data){
                    popUpUcyg(data, fila);
                },
                error: handleError
            });

    var popUpUcyg = function(data, fila){
     var a = $('#someid');
     a.html(data);
    // some dom manipulations (*)
}
问题是,我应该在内部ajax调用(
listado_ucyg.php
)返回的html代码中执行一些DOM操作

因此,当我执行
a.html(data)
时,会呈现数据,.js运行其ready部分,并对
listado\u ucyg.php
进行ajax调用,但我必须等到它返回,以便进行所需的最后修改

我怎样才能等到最后一个ajax调用完成?如果可能的话,我不想修改
ucyg.js

我知道我可以暂停,但我也希望避免这样

在服务器端,我使用的是PHP5.3,以防有人想到一个选项,比如向服务器传递一个参数,然后做一些魔术

编辑:

为了澄清顺序:

从index.php,我可以加载任何带有ajax调用的页面,即ucyg.php 文件ucyg.php具有
这个
ucyg.js
得到了您可以在上面看到的代码

在某种程度上,我从index.php加载item.php,这个页面有
。 在某种程度上,这个页面(在点击事件之后)需要加载一些非常类似于我在
ucyg.php
中的内容,您可以看到上面的代码。我没有创建另一个页面,而是选择使用Ajax调用带来
ucyg.php
,并使用js进行一些修改。问题是,当我带来ucyg.php时,它包含文件ucyg.js(正如我们所说的),这个文件准备好后,会进行另一个ajax调用

我需要做的一些修改,就在上次ajax调用所做的数据中。所以我需要以某种方式等到最后一个回来

我怎样才能做到这一点


谢谢

一种方法可能是使用
ajaxComplete()


也可以用它来解决连接到item.js中的ajax调用的承诺

你想过使用jQuery吗?我想这会涉及更改我的ucyg.js文件,我不确定是否允许我这样做,所以这就是为什么我想避免目前难以理解顺序的原因…items.js中的调用是什么触发因素?它是否也包装在函数调用中?承诺是您所需要的,只是如果无法实际调用
ucyg.load(),那么最好的方法是不明确的我将编辑到clarify@Gonzalo.-使用
promise
不必编辑
ucyg.js
文件。您只需要
ucyg.load()返回
jqXHR
使用
promise
API。
$( document ).ajaxComplete(function( event, xhr, settings ) {
    if ( settings.url === "Ajax/listado_ucyg.php" ) {
        /* run DOM code from items.js*/
    }
});