Tandis que la boucle avec jQuery async appels AJAX

La chose:
J'ai une page qui doit afficher nombre indéterminé d'images, chargé via AJAX (à l'aide de l'encodage base64 sur le côté serveur), un par un.

var position = 'front';
while(GLOB_PROCEED_FETCH)
{
    getImageRequest(position);
}

function getImageRequest(position)
{
    GLOB_IMG_CURR++;
$.ajax({
        url: urlAJAX + 'scan=' + position,
        method: 'GET',
        async: false,
        success: function(data) {
            if ((data.status == 'empty') || (GLOB_IMG_CURR > GLOB_IMG_MAX))
            {
                GLOB_PROCEED_FETCH = false;
                return true;
            }
            else if (data.status == 'success')
            {
                renderImageData(data);
            }
        }
    });
}

Le problème est que les images (construit avec le renderImageData ()) sont ajoutés (tous ensemble) à la DIV uniquement lorsque toutes les images sont extraites. Je veux dire, il n'y a aucune manipulation du DOM possible jusqu'à ce que la boucle est terminée.

J'ai besoin de charger et d'afficher les images une par une en raison de la possible nombre énorme d'images, donc je ne peux pas la pile jusqu'à ce qu'ils tous seront extraites.

Vous êtes à partir d'une requête dans la boucle while et la demande commence une autre demande si data.status == 'success' et qu'aucune demande lors de la configuration de GLOB_PROCEED_FETCH = false qui est la condition de la boucle while. Quelle est donc la raison pour la boucle while?
Fixe le code initial

OriginalL'auteur Aleksandr Shumilov | 2013-10-12