这个问题已经被问了好几次,但是已经解决了不好的问题。
我认为一个不好的意思是:
使用像mootools或jquery
这样的库在请求之间使用某种延迟,例如setTimeout(“doNext()”,3000);
具体来说,我想要实现的是这个。
<div onClick="javascript:one();two();"></div>
一个()和两个()是AJAX
一个()必须在两个()
之前答案 0 :(得分:4)
two();
中的ajax的成功处理程序中调用 one()
。 E.g:
HTML:
<div onClick="javascript:one();"></div>
的javascript:
function one() {
$.ajax({
...
success: function() {
setTimeout(two,3000);
}
});
}
function two() {
$.ajax({
...
});
}
答案 1 :(得分:3)
试试这个!!!
function one() {
$.ajax({
...
aysnc:false,
});
}
function two() {
$.ajax({
...
aysnc:false,
});
}
答案 2 :(得分:1)
我同意scessor第二个函数应该在第一个函数中执行 - 成功。这是我的AJAX函数,没有任何jquery或者需要:
function ajax_call_1(divId, params)
{
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if(divId!='')
document.getElementById(divId).innerHTML=xmlhttp.responseText;
else{
// do something else
}
ajax_call_2('html_id', 'parameters_to_be_send')
}
}
xmlhttp.open("POST", "script_url", true); //file
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length); //length
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params); //parameters
}
第二个功能是相同的,但没有成功的函数调用:
function ajax_call_2(divId, params)
{
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
if(divId!='')
document.getElementById(divId).innerHTML=xmlhttp.responseText;
else{
// do something else
}
}
}
xmlhttp.open("POST", "script_url", true); //file
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length); //length
xmlhttp.setRequestHeader("Connection", "close");
xmlhttp.send(params); //parameters
}
ajax_call_1函数参数是:
divId :在AJAX调用后保存结果的html元素的id
参数:应与请求一起发送的参数,即您需要发送的ID,名称或某种其他值。
说实话,这2个功能不是很可重复使用。我正在将它们更改为更抽象,因此它们可以用于每两个同时进行的AJAX调用,但是现在它们做得很好。