У меня два вложенных ajax-вызова на сервер.
При первом вызове ajax сервер возвращает мне XML, который содержит упорядоченный список объектов, сервер упорядочивает список по дате в порядке возрастания. Здесь я получаю объекты в порядке возрастания даты.
В функции успеха 2-го вызова ajax я просто выводил даты объектов, но мои объекты неожиданно удивительно не в порядке возрастания даты , почему?
Мой код выглядит следующим образом (пожалуйста, не смущайтесь из-за моих двух вызовов ajax, я объяснил их после кода):
$.ajax({
type : "GET",
url : MY_URL_1,
dataType : "xml",
success : function(xml) {
$(xml).find("DOCUMENT").each(function() {
var eachXMLdata = $(this);
var date = eachXMLdata.children("DATE").text();
// I successfully get the date in ascending order
console.log('date:'+date);
$.ajax({
type : "GET",
url : MY_URL_2,
dataType : "xml",
success : function(xml) {
var date = eachXMLdata.children("DATE").text();
//I have not change anything of eachXMLdata,
//why the order of the dates get messed up here
console.log('date:'+date);
}//end of 2nd ajax success function
});// end of 2nd ajax call
});//end of "each" function
}//end of 1st ajax success function
});//end of 1st ajax call
Как вы видели выше, есть два вложенных ajax-вызова, то есть 2-й ajax-вызов находится внутри функции успеха 1-го ajax-вызова (и в "каждой" функции).
В ajax-вызове 1st консоль выводит дату каждого объекта, которая правильно отображается в порядке возрастания .
Странная проблема возникает после того, как я снова вывел дату объектов в функции успеха вызова ajax 2nd , даты больше не в порядке возрастания, почему? Я ничего не изменил в eachXMLdata
, почему два консольных вывода дают мне разный порядок дат? и как от него избавиться ???