好的,所以我正在为我正在从事的项目编写一个小聊天系统。在此过程中,我一直在尝试学习 AJAX,而且一切似乎都很顺利。我的 AJAX 运行一个打开目录的 PHP 页面,并且 AJAX 从页面接收作为数组 (DirectoryList) 的目录。然后它一遍又一遍地加载另一个 AJAX 函数,直到所有聊天日志都附加到 DIV。
我的问题是 ChatLogs 没有按正确的顺序加载。
例如,如果我有日志:
- 1.txt
- 2.txt
- 3.txt
- 4.txt
它们将被附加到 ChatContainer DIV 中:
- 2.txt
- 1.txt
- 4.txt
- 3.txt
而不是正确的顺序。
这是我的代码:
var ChatList = new Array();
var p;
var DirectoryList = new Array();
var ChatString = '';
function loadChat(variable) {
var req = new XMLHttpRequest();
req.onreadystatechange = function () {
if (req.readyState == 4 && req.status == 200) {
DirectoryList = JSON.parse(req.responseText);
var p = variable;
while (p < DirectoryList.length) {
loadLog(p);
p++;
}
}
}
//END REQ1
//Post Chat to DIV
function loadLog(p) {
$.get('chat/log/' + DirectoryList[p], function (data2) {
ChatList.push(data2);
$('#ChatContainer').append(data2);
});
}
//End
req.open('GET', 'process/ReadChatLogs.php', true)
req.send(null);
}
loadChat(0);