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