2010-12-01 36 views
1

J'ai ce code postal dans une boucle (pendant que je < 10) et j'essaye de retarder chaque poste pendant 5 sec mais au lieu de cela le fait retarde 5 sec et envoie tous les 10 postes immédiatementEssayer de retarder un message jQuery

Existe-t-il un moyen de faire un intervalle ou de retarder chaque publication dans jQuery ou Ajax à l'intérieur d'une boucle?

$(document).ready(function() { 
       setTimeout(function(){ 
      $.post("Trigger.aspx", { phone: phoneval, 
      sms: smsval }, function(data) { 
       $('.result').html(data); 
      }); 
      },5000); 
      return false; 
    }); 
+0

Quel est le point d'envoyer la même demande 10 fois séparés par 5 secondes? – tvanfosson

Répondre

1

aussi loin que je me souviens appel ajax de jquery a une fonction beforeSend que peut-être répondu à votre problème

1

utiliser simplement un retard croissant:

$(document).ready(function() { 
    for(var i = 0; i < 10; i++) { 
     setTimeout(function(){ 
      $.post("Trigger.aspx", { 
       phone: phoneval, 
       sms: smsval 
      }, function(data) { 
       $('.result').html(data); 
      }); 
     }, 5000 * i); 
    } 
}); 

Si le premier POST devrait être retardée de 5 secondes, utilisez 5000 * (i + 1) ou changez votre boucle pour for(var i = 1; i <= 10; i++).

+0

J'ai essayé cela et le retard fonctionne bien, mais je veux changer le phoneval et smsval chaque compte de boucle. – user520646

+0

var phoneval = "<% = (varmin.Fields.Item (" téléphone "). Valeur)%>" \t \t \t \t var smsval = "<% = checkinactive.Fields.Item (" audio "). Valeur% > " – user520646

+0

et utilisé \t \t pour (;! Varmin.atEnd(); varmin.moveNext()) qui ne tarde pas du tout. – user520646