2つの異なるphpページからデータを取得する単一のページでロード時に複数のAjax関数を実行しようとしています。次に、両方のAjax関数が、取得したデータをajax関数が呼び出されたページに出力します。私が遭遇した問題は、Ajaxから行った最後の関数呼び出しが最初の関数呼び出しをオーバーライドするため、2番目の関数の結果のみが表示されることでした。
Ajax関数の1つのコード(両方が互いに非常に類似しているため):
function favorite_track_request(str){
switch(str){
case 'next_track':
var feed = 'require_fav_track_info';
var offset = track_currentOffset + 5;
if(offset > max_track_range){
offset -= 5;
}
break;
case 'prev_track':
var feed = 'require_fav_track_info';
var offset = track_currentOffset - 5;
if(offset < 0){
offset = 0;
}
break;
default:
var feed = 'require_fav_track_info';
var offset = 0;
}
request = new ajaxRequest()
request.open("GET", "scripts/"+feed+".php?offset="+offset, true)
request.onreadystatechange = function(){
if(this.readyState == 4){
if(this.status == 200){
if(this.responseText != null){
if(request.responseText){
document.getElementById('fav_tracks').innerHTML = request.responseText;
}
}else alert("No data recieved");
}else {
alert("Ajax error: "+this.statusText);
}
}
}
request.send(null);
track_currentOffset = offset;
}
このajaxはに出力されます<div id="fav_tracks"></div>
が、別の呼び出し(上記のAjaxと同様)が行われ、前の呼び出しがオーバーライドされるため、これはオーバーライドされます。これを止める方法はありますか?