0
我想在單個頁面上加載多個Ajax函數,它將從兩個不同的php頁面獲取數據。然後Ajax函數將把檢索到的數據打印到調用ajax函數的頁面上。我遇到的問題是,我從Ajax中創建的最後一個函數調用覆蓋了第一個函數調用,因此只顯示了第二個函數結果。ajax - 從一個頁面上的多個文件請求數據?
爲Ajax功能的一個代碼(因爲兩者的非常相似,彼此):
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)被創建並覆蓋了前一個。有什麼辦法可以阻止它嗎?
你有什麼期望
你會通過使用下面的每一個AJAX調用(給每個呼叫的唯一變數名稱)調用此如果你發射2個AJAX請求會發生?他們如何知道不要「相互替代」?我認爲當你調用這個函數時(你的頁面上有什麼事件),它被調用的頻率/速度以及你真正想要發生的事情,你需要更好地解釋。另外,你可以嘗試使用'document.getElementById('fav_tracks')。innerHTML + = request.responseText;'(注意** + **字符)附加到div的文本,而不是覆蓋它。 – Ian