在第一个XMLHttpRequest(失败)

时间:2017-02-28 09:20:47

标签: javascript php mysql ajax

首先,一个XMLHttpRequest调用脚本来更新MySQL数据库,它可以根据情况多次运行。脚本insertLocation将完成这项工作,但最后我正在调用第二个XMLHttpRequest,它应该更新从数据库生成的文件。问题是第二个XMLHttpRequest永远不会读取更新的数据库,因此第一个XMLHttpRequest中缺少数据。

然而,当我查看数据库时,数据就在那里。在创建文件之前我甚至尝试过睡觉,但它没有帮助。似乎无法调用2 XMLHttpRequest。我知道.open()的第三个参数,当它设置为false时,它将等待请求完成,但它现在正在工作。这是我的代码:

insertToDatabase(lat,lng,id);
//there I tried 10 second sleep
updateDatabaseFile();

function updateDatabaseFile() {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET","updateCoords.php",false);
        xmlhttp.send();
        alert("updated");
    }

function insertToDatabase(lat,lng,id) {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.open("GET","insertLocation.php?lat="+lat+"&lng="+lng+"&id="+id,false);
        xmlhttp.send();
        alert("inserted")
    }

一件事,当我手动运行updateDatabaseFile.php它将完成这项工作。所以我认为问题可能是当整个脚本结束时对数据库进行了更改,这就是我在阅读时获取不完整数据的原因。

编辑:警报(“已插入”)将在警报(“更新”)后打开,因此失败。第二个将首先完成。

0 个答案:

没有答案