2009-12-15 6 views
0

J'utilise la méthode ci-dessous entre les 50 lignes du code JQuery. À partir du résultat JSON, je dois faire le processus supplémentaire. Qu'est-ce que cela fait, Lorsque la première fois, il n'appelle pas l'URL et debuuger spécifié ne pas frapper à l'intérieur du JSon. Après tout le code ci-dessous s'exécute alors, Il récupère le résultat et le débogueur (à l'intérieur de la méthode Json) est également touché. Pourriez-vous m'expliquer dans quelle mesure cela fonctionne? que ce soit à cause de l'appel AJAX, il permet au code suivant de s'exécuter avant de le terminer.Méthode getJson Appel

var specExists = false; 
url = '/CompanyAdd/SpecMathesWithProvAndContract'; debugger 
$.getJSON(url, { OffId: OffID, CntId: CntID }, function(data) { 
    debugger 
    if (data) { debugger 
    specExists = true; 
} }); 

Merci, Nizam

Répondre

0

Le function(data) ne sera appelé après le résultat a été renvoyé par le serveur. Cela est dû au fait que cette fonction est une fonction de rappel, ce qui signifie qu'elle ne s'exécutera qu'une fois la requête JSON terminée. En d'autres termes, lorsque le résultat est obtenu, Function(data) sera appelé.

+0

Puis, je suppose qu'il permet d'exécuter la ligne suivante avant d'obtenir le résultat Json. Lorsque vous obtenez le résultat, la fonction (données) appelle. Ai-je raison? Merci, Nizam –

+0

Salut, Y at-il un autre moyen d'obtenir le résultat de la JSON et le permettre au code suivant à exécuter. Merci, Nizam –

+0

Merci beaucoup de me clarifier ... –

0

Ngu Soon La réponse de Hui est correcte.

Après l'exécution de la fonction ajax, le code suivant sera exécuté. le callback function sera exécuté de manière asynchrone, comme pour exécuter un autre thread, lorsque ajax est terminé.

mais nous pouvons le faire attendre jusqu'à ce que l'appel ajax soit terminé avant d'exécuter le code suivant en spécifiant l'option async = false dans la fonction $.ajax(). $.getJSON() n'a pas cette option.

$.ajax({ 
    type: "POST", 
    url: "/CompanyAdd/SpecMathesWithProvAndContract", 
    dataType: "json", 
    data: { OffId: OffID, CntId: CntID }, 
    async: false 
}); 
+0

Merci beaucoup de m'avoir clarifié .. –