Plus précisément, en quoi diffère-t-il de la valeur par défaut ( async: true
)?
Dans quelles circonstances je veux ensemble explicite async
à false
, et at - il quelque chose à voir avec la prévention d' autres événements sur la page de mise à feu?
Réponses:
Oui.
Définir async sur false signifie que l'instruction que vous appelez doit se terminer avant que l'instruction suivante dans votre fonction puisse être appelée. Si vous définissez async: true, cette instruction commencera son exécution et l'instruction suivante sera appelée, que l'instruction async soit terminée ou non.
Pour plus d'informations, voir: jQuery ajax success anonymous function scope
la source
async: false
supprime complètement l'asynchronisme de l'appel . L'appel auxajax
blocs - le code qui le suit n'est pas exécuté tant que le serveur n'a pas répondu.async: false
soit mort, je l'ai essayé et j'ai obtenu18:17:49.384 Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user’s experience. For more help http://xhr.spec.whatwg.org/ 1 jquery.js:9061:4
async:false
= Code en pause . (Autre code attendant que cela se termine.)async:true
= Le code a continué . (Rien n'est mis en pause. Un autre code n'attend pas .)Aussi simple que cela.
la source
Async:False
tiendra l'exécution du code de repos. Une fois que vous obtenez la réponse de ajax, alors seulement, le reste du code s'exécutera.la source
Si vous désactivez la récupération asynchrone, votre script se bloquera jusqu'à ce que la demande soit satisfaite. Il est utile pour effectuer une séquence de requêtes dans un ordre connu, bien que je trouve les rappels asynchrones plus propres.
la source
Un cas d'utilisation consiste à passer un
ajax
appel avant que l'utilisateur ne ferme la fenêtre ou quitte la page. Cela reviendrait à supprimer certains enregistrements temporaires dans la base de données avant que l'utilisateur puisse naviguer vers un autre site ou fermer le navigateur.la source
De
https://xhr.spec.whatwg.org/#synchronous-flag
Synchronous XMLHttpRequest en dehors des travailleurs est en cours de suppression de la plate-forme Web car cela a des effets néfastes sur l'expérience de l'utilisateur final. (Il s'agit d'un long processus qui prend de nombreuses années.) Les développeurs ne doivent pas passer false pour l'argument asynchrone lorsque l'environnement global JavaScript est un environnement de document. Les agents utilisateurs sont fortement encouragés à avertir d'une telle utilisation dans les outils de développement et peuvent expérimenter le lancement d'une exception InvalidAccessError lorsqu'elle se produit. La direction future est d'autoriser uniquement XMLHttpRequests dans les threads de travail. Le message est destiné à être un avertissement à cet effet.
la source
Définir async sur false signifie que les instructions qui suivent la demande ajax devront attendre que la demande se termine. Voici un cas où il faut définir async sur false, pour que le code fonctionne correctement.
L'exemple ci-dessus explique clairement l'utilisation de async: false
En le définissant sur false, nous nous sommes assurés qu'une fois les données récupérées de l' url , seulement après ce retour php_data; est appelé
la source
return php_data
instruction ne peut pas être dans la fonction de réussite, mais doit être en dehors de la$.ajax()
fonction. J'avais mis mon équivalent de l'return php_data
intérieursuccess: function(){}
et il revenait toujours indéfiniutiliser cette option décimales: 3
voici l'url: https://demos.telerik.com/kendo-ui/numerictextbox/index
la source