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

Une brève analyse et des solutions à la synchronisation Ajax et aux problèmes asynchrones

亚连
Libérer: 2018-05-22 17:12:32
original
1920 Les gens l'ont consulté

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. Cet article vous présentera une brève analyse de la synchronisation Ajax et des problèmes asynchrones. Les amis qui en ont besoin peuvent se référer à

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 à exécuter, c'est-à-dire attendez le retour réussi 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 est uniquement une méthode de transmission synchrone locale et n'affectera pas les autres. transmissions. C'est plus sûr. Il existe également une méthode

recommandée :

Cette méthode est globale et n'est pas recommandée car elle affectera les autres transmissions ajax. >Ce qui précède est ce que j'ai compilé pour vous. J'espère qu'il sera utile à tout le monde à l'avenir Articles connexes :

// $.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
Explication détaillée de la position : problème résolu dans IE6<.>

Explication détaillée des symboles !important, *, _ dans les styles CSS

remplissage pour créer une mise en page adaptative d'image (pourcentage CSS)

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!