2010-08-03 6 views
2

J'appelle une méthode de page sur la souris d'un curseur d'image pour afficher une image à partir d'une base de données. Le problème est que je reçois plusieurs rappels. Est-ce que quelqu'un sait comment résoudre ce problème?Méthode de page plusieurs callbacks

Code qui j'utilise la méthode de la page:

var contextArray = "img"; 
pageMethodConcept = { 
    callServerSideMethod: function (id) { 
     PageMethods.GetItemLargeImage(id, pageMethodConcept.callback, pageMethodConcept.Failcallback, contextArray); 

    }, callback: function (result, userContext, imagePreview) { 
     //alert(result); 
     if (userContext = "img") { 
      //replace img source with result 
      document.getElementById("displayPreviewImage").src = result; 

      return false; 
     } 
    }, Failcallback: function (result, userContext) { 
     alert("failed"); 
    } 
} 

code pour régler la minuterie:

var alertTimer = 0; 

if (alertTimer == 100) { 
    alert("time 100"); 
    alertTimer = setTimeout(pageMethodConcept.callServerSideMethod(this.id), 0); 

} 
else { 
    alertTimer = setTimeout(pageMethodConcept.callServerSideMethod(this.id), 100); 
    alert("time "); 
} 

Répondre

1

À votre avis, que fait exactement le code temporisateur?

if (alertTimer == 100) {...

100? Qu'est-ce que 100?

setTimeout and clearTimeout

Vous devriez faire quelque chose comme:

if (alertTimer != 0) { 
    /* timeout pending */ 
    clearTimeout(alertTimer); 
    alertTimer = ... 
} else { 
    /* set timeout */ 
    alertTimer = ... 
} 
0

Ajouter une minuterie et envoyer le rappel que si est passé un certain laps de temps à partir du dernier rappel. Vous pouvez le faire avec un compteur.

+0

hey Merci pour sugesstion j'ai quelque chose à montrer u est que ce que vous entendez par réglage de la minuterie simplement vérifier et voir parce qu'il ne fonctionne pas avec méthodes mais le problème des appels multiples est résolu. Je suis en train d'éditer ma question – mehul9595