Maison >interface Web >Questions et réponses frontales >Comment changer jquery ajax en synchronisation
Dans jquery, ajax peut définir async sur false pour le rendre synchronisé ; par défaut, ajax dans jquery est une requête asynchrone, c'est-à-dire "async:true". Vous pouvez définir le paramètre "asycn:false" et la syntaxe. est "$ .ajax({async: false})".
L'environnement d'exploitation de cet article : système Windows 10, jquery version 3.6.1, ordinateur Dell G3.
ajax dans jquery est une requête asynchrone par défaut, c'est-à-dire async:true, vous pouvez le synchroniser en définissant le paramètre asycn:false
ajax est une requête asynchrone par défaut ; en ajax, vous pouvez utiliser async La valeur est différente pour déterminer s'il s'agit d'une requête asynchrone. Si la valeur de async est fausse, cela signifie que la requête ajax est synchrone. Si la valeur de async est vraie, cela signifie que l'ajax. La requête est asynchrone. Par défaut, la valeur de async est "true". Par conséquent, ajax est une requête asynchrone par défaut.
Si vous souhaitez synchroniser de manière asynchrone, définissez-le sur false (la valeur par défaut est true)
var html = $.ajax({ url: “some.php”, async: false }).responseText;
Ou définissez l'attribut Ajax globalement
$.ajaxSetup({ async: false });
Utilisez post, get sera synchronisé
L'exemple est le suivant :
Généré de manière aléatoire Un entier à 10 chiffres est comparé à la base de données back-end. S'il y a ce nombre aléatoire dans la base de données back-end, un nouveau sera généré. Sinon, ce numéro sera renvoyé.
Cette exigence implique une interaction front-end et back-end, il est donc inévitable d'utiliser ajax, j'ai donc écrit ce morceau de code au début.
//randID是封装的生成随机数的函数 function userID() { let ranid = parseInt(randID(1000000000, 10000000001)); let data = null; $.ajax({ type: 'post', url: './php/findID.php', data: 'id=' + ranid, success: function(res) { res = JSON.parse(res); isok = res.length; if (isok != 0) { userID(); } else { return ranid; } } }) } console.log(userID());
Résultat de sortie :
solution jquery.ajax
Déclarer une variable locale sous la fonction (en dehors d'ajax)
Traiter ajax comme un traitement synchrone (modification de jquery.ajax Méthode : Ajoutez ce code à async : false)
Renvoyer la variable locale déclarée
function userID() { let ranid = parseInt(randID(1000000000, 10000000001)); //声明的局部变量 let data = null; $.ajax({ type: 'post', url: './php/findID.php', data: 'id=' + ranid, //将ajax改为同步操作 async: false, success: function(res) { res = JSON.parse(res); isok = res.length; if (isok != 0) { console.log(ranid); userID(); } else { data = ranid; } } }) //返回这个局部变量 return data; } console.log(userID());
Résultat de sortie :
Recommandations de didacticiel associées : Tutoriel vidéo jQuery
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!