kullanıcıya bazı geribildirim verirken, çok sayıda dosya upload jQuery recursive fonksiyon

1 Cevap php

Kullanıcıların bir kerede çok sayıda dosya yüklemek izin bir jQuery işlevi yazmak çalışıyorum. Burada kullanıcı yükleme işlemi ilerleme hakkında bazı geribildirim vermek düşündüm fonksiyon.

function uploadFiles(numbersOfFiles, start) {
   $("#info").html(start + " files uploaded");
   $.post('upload.php', {
      start: start
   }, function (data) {
      start += 5;
      if (start < numbersOfFiles) {
         uploadFiles(numbersOfFiles, start);
      } else {
         $("#info").html("All files have been uploaded");
      }
   });
}

The function calls a php script to upload 5 files, then if there are more files to upload it calls the script again. The whole process works. I've tried it with 100 files. The only thing that doesn't work is the #info div updating. The div get updated the first time and then again only to show "All files have been uploaded". So there's no feedback for the user about the uploading process. I can't understand why... Any help?

1 Cevap

$.post uyumsuz yürütülür. JQuery başka $.post çalıştırmadan önce bitirmek için POST beklemez Anlamı

Dolayısıyla gerçek POST hala arka planda cevaplarından bekliyor olsa bile, jQuery çok hızlı bir şekilde tüm mesajları yürüteceğini ve görmek lazım mesaj "Tüm dosyalar yüklendi" dir.

Eğer ne yapmak istediğinizi yapmak için, ardışık complete: in uploadFiles diyoruz.