jquery async et de données JSON
la suite de javascript jquery et l'utilisation d'eval je ne peut toujours pas obtenir de jquery pour lire les données de manière asynchrone.
data1=[1,2,3,4]
Remarque: j'ai inclus async:true dans l'exemple ci-dessous juste pour montrer la différence
Exemple ci-dessous retourne "null"
$(document).ready(function(){
var myArray=[];
myArray=getValues();
alert(myArray);
function getValues(){
var result=null;
$.ajax({
url: 'data1.html',
type: 'get',
dataType: 'json',
cache: false,
success: function(data) {result = data;},
async:true,
});
return result;
};
})
et ci-dessous un exemple du bon travail, et donne le résultat dans un tableau, j'.e [1,2,3,4]
$(document).ready(function(){
var myArray=[];
myArray=getValues();
alert(myArray);
function getValues(){
var result=null;
$.ajax({
url: 'data1.html',
type: 'get',
dataType: 'json',
cache: false,
success: function(data) {result = data;},
async:false,
});
return result;
};
})
quelqu'un peut m'expliquer comment obtenir les résultats de façon asynchrone
Grâce
double possible de valeur de Retour d'appel ajax?
OriginalL'auteur Linus | 2011-04-13
Vous devez vous connecter pour publier un commentaire.
Je voudrais le changer pour cette ...
OriginalL'auteur coder_tim
Cela devrait fonctionner, comme elle a travaillé dans la mine, mais je vous suggère de ne pas le faire.
OriginalL'auteur Santosh Linkha
première partie, le résultat est retourné de manière asynchrone à myArray, mais avant cela, la fonction d'alerte a déjà été exécutée parce que l'ajax s'est passé de manière asynchrone. Donc, si vous placez alerte à droite après le "résultat de retour", vous devriez voir le résultat.
OriginalL'auteur yangqi
Par défaut, toutes les demandes sont envoyées
asynchronously
.true
par défaut.Si vous avez besoin des requêtes synchrones, définissez cette option à
false
.Cross-domain
demandes etdataType: "jsonp"
demandes ne prennent pas en charge le fonctionnement synchrone. Notez que les requêtes synchrones peuvent verrouiller temporairement le navigateur, la désactivation de toutes les actions, tandis que la demande est active.Si vous devez vous assurer que la méthode affiche toujours les données les plus récentes ensuite utiliser
cache:false
etasync:false
. Aussi, pour éviter de timeout/erreur d'utilisersuccess
/error
/complete
options de rappel.OriginalL'auteur Payal2299