Javascript阻止AJAX加载

时间:2012-10-22 22:44:55

标签: javascript jquery ajax asynchronous

我正在寻找一种在javascript中制作AJAX加载请求的方法,但是在等待AJAX​​加载完成时让javascript代码暂停执行。换句话说,我正在尝试执行同步 AJAX加载请求(我知道AJAX中的'A'代表异步。我只是希望名称可能不完全正确。)。我拥有的是

$('#my_id').load("my_page.pl?my_param=p1&my_other_param=p2");
//Please wait here
//Now do stuff after load is complete.

我希望请求是同步的原因是因为它创建了一个HTML表,然后是后面的javascript解析表。

2 个答案:

答案 0 :(得分:0)

jQuery的'load()'方法需要回调。回调通常是异步代码处理您想要的“等待”功能的方式。

$("#my_id").load("my_page.pl?my_param=p1&my_other_param=p2", function (response) {
    // do this stuff, which will run after the request is complete
});

答案 1 :(得分:0)

这看起来像jquery ......我不能确定因为我根本不知道jquery但是如果是这样你可能会得到更好的答案标记它。 我可以告诉你,javascript有自己的同步OR异步调用方法。这就是我使用的:

var xmlhttp;
if (window.XMLHttpRequest) {
    xmlhttp = new XMLHttpRequest();
}
else {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
// Use the activeX object for old IE

xmlhttp.open("GET","http://some.internet.address/woot?foo=bar", false);
// The third argument in the open function determines the asynchronous nature, 
//it was set to false, so the code will halt at the send() point while the request is executed.
xmlhttp.send();
// Now, if the call succeeded...
if (xmlhttp.status==200) {
    response = eval('('+xmlhttp.responseText+')');
    // ...save the results to an object named response...
}
else {
    // ...Otherwise do some other stuff
    errorFunction(xmlhttp.status);
}

这里也提供了很多好消息 - http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp