私は、第2の機能が第1の機能内で実行されるべきであることに同意する - 成功した。ここに私の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は:html要素のID AJAX呼び出しの後に結果を保持する
params:リクエストとともに送信する必要があるパラメータ、つまりID、名前、または送信する必要のあるその他の値。
正直言って、この2つの機能はあまり再利用できません。私はそれをより抽象的にするように変更しているので、同時に2つのAJAX呼び出しごとに使用できるようになりましたが、今はうまく機能しています。
応答が得られた後に内部が2つ呼び出される – Dau