J'ai une fonction utilisant $ .ajax() pour obtenir des valeurs d'un fichier XML, quand l'information est chargée et l'événement de succès est déclenché, j'utilise $ (xml) .find (''). Each (function() { }); pour remplir quelques vars ...Jquery, ajax() et each(), comment attendre jusqu'à ce que toutes les infos soient vraiment chargées?
function getData()
{
$.ajax({
type: 'GET',
url : 'info.xml',
dataType: 'xml',
success: function(xml)
{
$(xml).find('DATAS').each(function()
{
date = new Date($(this).attr('DATE'));
alert(date);
})
//Here I have a bigger find/each that should take more time
},
error: function()
{
return false;
}
});
}
Dans ce cas, lorsque je déclenche la fonction du document fonction prêt, l'alerte montre les bonnes données, mais si je supprime l'alerte de la fonction et essayer cette place, date ne sera pas encore définie:
$(document).ready(function()
{
if(getData() != false)
{
alert(date);
}
});
Je suppose que dans ce cas, les données ne sont pas encore prêtes? Existe-t-il un moyen de garder le contrôle lorsque la traversée each() est terminée et prête?
Aller à vérifier, au sujet de la ajax: async je l'ai déjà essayé dans le passé et il peut vraiment gelé le navigateur. – Moustard