J'ai eu quelques problèmes avec la fonction d'erreur AJAX se appelé pendant que le script prend du temps à charger. Mais j'ai été en mesure de le réparer en ajoutant async: false
.
par exemple:
$.ajax({
type: 'POST',
url: REQUEST_URL,
async: false,
data: {
'id': id
},
dataType: 'json',
success: function(output) {
// success
},
error: function() {
alert('Error, please refresh the page');
}
});
En lisant la documentation, il est dit:
Par défaut, toutes les demandes sont envoyées de manière asynchrone (à savoir ce paramètre est réglé true par défaut). Si vous avez besoin de requêtes synchrones, définissez cette option sur false. Les demandes interdomaines et dataType: les requêtes "jsonp" ne prennent pas en charge l'opération synchrone. Notez que les demandes synchrones peuvent bloquer temporairement le navigateur, en désactivant toutes les actions pendant que la demande est active. À partir de jQuery 1.8, l'utilisation de async: false avec jqXHR ($ .Deferred) est obsolète; vous devez utiliser les rappels complets/succès/erreur .
Q) Qu'est-ce que la dernière partie signifie à propos jqXHR (.Deferred $)? Cela affecte-t-il mon script?
merci, je voulais juste m'assurer que mon code ne se casserait pas dans le futur jquery –