Maison  >  Article  >  interface Web  >  Quelle est la différence entre async:false et async:true dans les requêtes Ajax ?

Quelle est la différence entre async:false et async:true dans les requêtes Ajax ?

php中世界最好的语言
php中世界最好的语言original
2018-04-02 15:20:361754parcourir

Cette fois, je vais vous présenter la différence entre async:false et async:true dans les requêtes Ajax. Quelles sont les précautions pour utiliser async:false et async:true dans les requêtes Ajax ? cas pratique, jetons un coup d'oeil.

L'exemple est le suivant :

function test(){
  var temp="00";
  $.ajax({
    async: false,
    type : "GET",
    url : 'userL_checkPhone.do',
    complete: function(msg){
      alert('complete');
    },
    success : function(data) {
      alert('success');
      temp=data;
      temp="aa";
    }
  });
  alert(temp);
  }

méthode checkPhone() dans UserLAction

  public void checkPhone() throws IOException {
    this.getServletResponse().setContentType("text/html; charset=UTF-8");
    this.getServletResponse().setHeader("Cache-Control", "no-cache");
    PrintWriter out = this.getServletResponse().getWriter();
    out.print("true");
  }

async: false, (la valeur par défaut est true);

Lorsque async: false est synchrone, la requête Ajax dans la méthode test() verrouillera l'intégralité du navigateur,

Seulement une fois l'exécution de userL_checkPhone.do terminée, d'autres opérations peuvent être effectuées.

Le résultat de l'exécution est donc alert('success'); alert('complete'); alert("aa");

Quand async: true, la requête ajax est asynchrone. Mais il y a un problème : la requête ajax dans test() et les opérations suivantes sont exécutées de manière asynchrone, donc lorsque userL_checkPhone.do n'a pas été exécuté, les opérations suivant la requête ajax ont peut-être été exécutées,

Donc le le résultat est alert('success'); alert('complete'); alert("00");

De cette façon, vous constaterez que alert("success") et alert(temp) sont exécutés presque simultanément, donc temp est la valeur initialisée temp = "00", pas temp="aa";

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 payer. attention aux autres articles connexes sur le site PHP chinois !

Lecture recommandée :

Ajax+mysql pour créer une fonction de babillard électronique

Étapes Ajax pour implémenter une requête de pagination de données détaillée explication

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!

Déclaration:
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