请求中的AJAX请求

请求中的AJAX请求,ajax,google-maps,Ajax,Google Maps,首先我加载php页面,然后一个java函数调用来自java脚本的第一个AJAX请求,该请求调用第二个php并发布一些变量并操作函数一…意味着第一个AJAX请求仍在工作 现在第二个php中的函数1调用另一个JAVA脚本创建另一个AJAX请求调用第三个php为MAP API生成XML数据…意味着第二个AJAX请求…但是它失败了,因为第一个请求仍然没有完成…我如何处理?哪个AJAX调用php,哪个php调用第二个AJAX请求 请帮帮我 根据您的示例查看我的需求,因为我的代码太长,无法按照堆栈格式在此处

首先我加载php页面,然后一个java函数调用来自java脚本的第一个AJAX请求,该请求调用第二个php并发布一些变量并操作函数一…意味着第一个AJAX请求仍在工作

现在第二个php中的函数1调用另一个JAVA脚本创建另一个AJAX请求调用第三个php为MAP API生成XML数据…意味着第二个AJAX请求…但是它失败了,因为第一个请求仍然没有完成…我如何处理?哪个AJAX调用php,哪个php调用第二个AJAX请求

请帮帮我

根据您的示例查看我的需求,因为我的代码太长,无法按照堆栈格式在此处发布和格式化

首先,我直接在浏览器中加载ajax1.php

现在我调用第一个AJAX请求

$.ajax('/ajax2.php', function(data2){
// But the ajax2.php having Call another AJAX request for ajax3.php which retrive XML Data genereted from mysql and create Google MAP
    $.ajax('/ajax3.php', function(data3){
       // I need to display the ajax2.php Generated MAP to DIV created by ajax1.php
     // Whene I call ajax2.php directy from browser url it AJAX ajax3.php runs and gerete MAP perfectly
     // But I call ajax2.php through ajax1.php AJAX request it dosen't create the ajax3.php AJAX request 
    });
});
简而言之,我调用第一个AJAX请求,但是第一个AJAX请求调用另一个AJAX请求。它生成地图

document.getElementById("ntfs").innerHTML=xmlhttp.responseText;
// This above code is not working but I write like

document.write(xmlhttp.responseText);
//This above Code works perfect, but it create new document I can't fill to DIV.innerHTML

为什么??发生这种情况吗?

与往常一样,如果您发布一些自己的代码,将更容易帮助您。我将使用jquery

您需要了解ajax是异步的。IDE不会为了执行下一行代码而等待ajax调用完成。如果希望ajax1在完成时调用ajax2,ajax2在完成时调用ajax3,则需要利用ajax技术的
finished:
complete:
处理程序。在jquery中,它看起来是这样的

$.ajax('/ajax1.php', function(data1){
    $.ajax('/ajax2.php', function(data2){
        $.ajax('/ajax3.php', function(data3){
            //All 3 ajax calls are done, in order
        });
    });
});

alert('the first ajax call was made and is probably still executing');
$.ajax('/ajax1.php', function(data1){
    //ajax1 call is done
});

$.ajax('/ajax2.php', function(data2){
    //ajax2 is done
    $.ajax('/ajax3.php', function(data3){
        //ajax2 and ajax3 calls are done, in order
    });
});

alert('the first 2 ajax call were made and are probably still executing');
例如,如果您希望ajax1和ajax2同时运行,并且在完成时让ajax2调用ajax3,它将如下所示

$.ajax('/ajax1.php', function(data1){
    $.ajax('/ajax2.php', function(data2){
        $.ajax('/ajax3.php', function(data3){
            //All 3 ajax calls are done, in order
        });
    });
});

alert('the first ajax call was made and is probably still executing');
$.ajax('/ajax1.php', function(data1){
    //ajax1 call is done
});

$.ajax('/ajax2.php', function(data2){
    //ajax2 is done
    $.ajax('/ajax3.php', function(data3){
        //ajax2 and ajax3 calls are done, in order
    });
});

alert('the first 2 ajax call were made and are probably still executing');
补充阅读: