jquery tekrar işlem kez php dosyasından cevap olsun

2 Cevap php

i Veritabanı sağa sola dizide kayıt ekleyerek işleyen bir php dosyası var.

Dizideki örneğin ben 5 ürün yok

        aray an='abc','xyz','ert','wer','oiu'

i j sorgu ajax yöntemde bir php dosyası aramak istiyorum

   um = an.split(',');
    var counter = 0;
   if(counter < uemail.length) {
   $("#sending_count").html("Processing Record "+ ecounter +" of " + an.length);
   var data = {uid: um[counter]
   $.ajax({
   type: "POST",
  url: "save.php",
  data: data,
   success: function(html){
   echo "added";
   counter++; 
   }

what it do, it complete all the prcess but save.php is still working what i want after one process it stop untill process of save.php complete then it wait for next 10 sec and start adding of 2nd element.

Teşekkürler

2 Cevap

Emin değilim doğru sorunu anlamak, ancak senkron (engelleme) ajax çağrıları yerine asenkron (engellenmeyen) kullanmak isteyebilirsiniz eğer. Asenkron arama yaptığınızda, kod yürütme "arka planda" ajax çağrıları bırakarak, hemen devam ediyor. Istek bitinceye kadar senkron çağrı bloklar kod yürütme.

$.ajax({ async: false, ... });

O bunu yapmak isterim neden çalıştığınız istemesine rağmen, sorgulamak haddim yavaş ve tepkisiz UI neden olamazdı.

Bir while döngü değil, bir if döngü isteyeceksiniz:

while(counter < uemail.length) { 

Kendilerini diğer çözüm,

Sen çağrı sonraki çizgisini yürütmeden önce, tam emin olmak için async bayrağını kapatmak isteyeceksiniz. delay() fonksiyonu da yardımcı olacaktır.

$.ajax({   
    async: false,  //ensure our requests are synchronous.
    type: "POST",   
    url: "save.php",   
    data: data,   
    success: function(html){   
        echo "added";  //?? not a valid javascript function
        delay(10000);  //10000ms = 10 seconds.
    }
    counter++;    

}

Ayrıca, echo geçerli bir jQuery / javascript fonksiyonu değildir, ve parantez biraz belirsiz ve muhtemelen misssing.

Ben o değildi ve bir başarısızlık var ise o zaman sonsuza kadar devam edebilir, çünkü counter++, sizin döngü dışında yukarıda varsaydım.