0

我正在寻找一种在 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 解析了该表。

4

2 回答 2

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
});
于 2012-10-22T22:53:39.917 回答
0

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

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

于 2012-10-22T22:55:48.807 回答