Javascript, jQuery, mehrere AJAX-Anfragen zur gleichen Zeit

function makeCall(file, handlerFile, sendMethod, formData) {
    //console.log(instance.files);

    $.ajax({
        url: handlerFile,
        type: sendMethod,
        xhr: function() {  //Custom XMLHttpRequest
            var xhr = $.ajaxSettings.xhr();

            if(xhr.upload) { //Check if upload property exists
                xhr.upload.addEventListener('progress', progressHandlingFunction.bind(file)); //For handling the progress of the upload
                //xhr.upload.addEventListener('loadend', successHandler.bind(xhr));
            }

            //console.log(xhr);

            return xhr;
        },
        beforeSend: beforeSendHandler.bind(file),
        success: completeHandler.bind(file),
        //error: errorHandler,
        data: formData, //Form data
        dataType: 'json',
        cache: true,
        //async: false,
        contentType: false,
        processData: false
    });

}



$(".afu-input").on('change', function() {
        var i = 0;
        var length = this.files.length;
        var files = this.files;

        var calling = setInterval(function() {
            var file = files[i];
            console.log(file);

            uid  = generateUniqueId();
            file.id = uid;

            var formData = null;
            formData = new FormData();

            formData.append(i, file);
            formData.append(i, [uid]);

            makeCall(file, handlerFile, sendMethod, formData);

            i++;

            if (i >= length) {
                clearInterval(calling);
            }
        }, 2000); //Delay is for testing. Normaly there is no delay
}

Ich versuche zum hochladen von Datei eins nach dem anderen. Aber das problem ist, dass ajax-Anfrage senden richtig, aber immer nur einen(ersten) Daten zurückgeben.

Mein Ziel ist es, ein Skript erstellen, die uploads von Bildern(und später auch andere Dateien) auf input[type=file] ändern. Ich habe versucht, mehrere Dateien hochladen, die mit einer Anfrage, aber progress-Ereignis registrieren, Sie als ein. Ich hatte die Idee zu Segment(chunk) Dateien in Stücke ant zu senden, aber diese Variante scheint einfacher(nur brauchen, um es zu arbeiten, dann kann ich es verbessern). Danke.

  • Gibt es einen Grund für die 2 Sekunden Verzögerung zwischen den uploads?
  • Nop, nur zum testen, ich war auf der Suche nach problem und Hinzugefügt 2s Verzögerung. Gestern war ich googeln eine Menge, und fand, dass es getan werden kann, mit der Latenten in jQuery, ich werde es bald testen.
InformationsquelleAutor minus1 | 2013-10-24
Schreibe einen Kommentar