2009-10-06 9 views
0

Dans mon application j'utilise asp.net3.5, ajax.dll.Problème Javascript Settimeout

J'appelle toutes les fonctionnalités en utilisant ajax de javascript.

Parfois, j'ai besoin d'obtenir les résultats de la condition du côté serveur, seulement alors je serai en mesure de passer à la condition suivante. Pour le cas ci-dessus, javascript passe à la condition suivante avant d'exécuter la première condition.

donc j'ai ajouté le code suivant pour le faire fonctionner,

setTimeOut("finddefaultvideo()",1000);.

Quelqu'un peut-il s'il vous plaît m'aider à se débarrasser de ce problème? Une chose que j'ai comprise, il n'attendra pas le temps jusqu'à ce que le serveur renvoie la valeur

une idée pour surmonter celle ci-dessus?

Répondre

2

Je ne sais pas si je vous ai bien compris, mais cela pourrait être la solution que vous cherchez (mais il utilise jquery)

$.ajax({ 
    type: "POST", 
    url: "some.php", 
    data: "name=John&location=Boston", 
    success: function(msg){ 
    alert("Data Saved: " + msg); 
    } 
}); 

le message d'alerte est affichée dès que votre demande de paiement ajax était succès complet et le serveur a envoyé des données de réponse.

0

setTimeout n'est pas fiable pour cela, sauf si vous utilisez une technique d'interrogation récursive. Vous devez appeler finddefaultvideo après le retour du rappel ajax. Vous pouvez placer finddefaultvideo() à l'intérieur de votre rappel ajax, celui qui a été déclenché onreadystatechange et où readyState est 4 et 'complete'.

ajaxCallback: function(html) { 
    if (something) { 
     executeRestOfCode(); 
    } 
} 

function executeRestOfCode() { 
    // your code that needs to be invoked after the ajax callback 
}