Maison > interface Web > js tutoriel > le corps du texte

Quelle est la différence entre une implémentation synchrone et asynchrone utilisant Ajax ?

php中世界最好的语言
Libérer: 2018-04-02 14:37:16
original
2080 Les gens l'ont consulté

Cette fois, je vais vous dire quelle est la différence entre utiliser Ajax pour obtenir une synchronisation et une implémentation asynchrone, et quelles sont les précautions concernant l'utilisation d'Ajax pour obtenir une synchronisation et une implémentation asynchrone. Ce qui suit est un cas pratique. , jetons un coup d'oeil.

Lors de l'envoi et de la réception de données en arrière-plan via ajax, des problèmes de synchronisation et asynchrones surviennent souvent. Étant donné que ajax est chargé par défaut de manière asynchrone, mais que parfois une synchronisation ou des effets de synchronisation sont nécessaires, il existe deux solutions.

Option 1 : placez certaines méthodes dans la fonction de rappel pour l'exécution, c'est-à-dire attendez que le succès revienne de l'arrière-plan avant de l'exécuter.

Exemple :

$.getJSON("/data-access/sens-config/IPandPortSel",{},function(resp){
if(resp.code==0){
$.each(resp.data,function(i,obj){
option_net_type += addOption(obj);
});
$("#edit-addr_id").append(option_net_type);
addr_idOld = $('#edit-addr_id').val(addr_id);
}
});
Copier après la connexion

La partie rouge doit être exécutée une fois les données renvoyées avec succès, si elle est placée à l'extérieur de if(resp.code==0){} ( (Mais placé après $.getJSON();) Il y aura une situation où la partie rouge du code aura été exécutée avant que les données ne soient renvoyées depuis l'arrière-plan.

Méthode 2 : Utilisez la méthode de livraison ajax standard

 $.ajax({ 
  type : "post", 
  url : "/data-access/manufacturer/deleteBranch", 
  data : data, 
  async : false,//取消异步 
  success : function(resp){
if(resp.code==0){
if(ids.length>=currentListNum&&currentPage!=1){
currentPage = currentPage - 1;
}
var para = {
mypara :currentPage,
startPage : currentPage,
};
$('p.page-box').data('myPage').setOptions({data: para});
}
  } 
 });
Copier après la connexion

Remarque : Cette méthode n'est qu'une méthode de transmission de synchronisation partielle et n'affectera pas les autres. transmissions. C'est un moyen relativement Sûr et recommandé

Il existe un autre moyen :

// $.ajaxSettings.async = false;
// $.getJSON("/data-access/ip-config/deleteBranch",data,function(resp){
// if(resp.code==0){
// if(ids.length>=currentListNum&&currentPage!=1){
// currentPage = currentPage - 1;
// }
// var para = {
// mypara :currentPage,
// startPage : currentPage,
// };
// $('p.page-box').data('myPage').setOptions({data: para});
// }
// });
// $.ajaxSettings.async = true;
Copier après la connexion

Cette méthode est globale et n'est pas recommandée car elle affectera d'autres transmissions ajax

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention à. autres sites Web php chinois.

Lecture recommandée :

Utiliser Blod pour télécharger la barre de progression ajax

Comment Ajax réalise l'urbanisation. liaison secondaire

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal