Anonim

Par défaut, la demande $ .ajax dans jQuery est définie sur asynchrone. Le nom de la variable est asynchrone et la valeur est définie sur true. Cela m’a aussi apporté un peu de confusion lors de la première lecture, passons donc au-dessus.

Asynchrone vs Synchrone

Le paramètre par défaut dans jQuery. D'après mon expérience, Asynchronous devrait presque toujours faire l'affaire. Il existe également 2 situations particulières qui ne permettent même pas un appel synchrone.

  • Requêtes interdomaines. Si je fais une demande ajax de techjunkie.com vers un fichier sur whereever.com (un domaine complètement différent), ce sera une demande entre domaines.
  • jsonp - Si vous souhaitez récupérer des données JSON entre plusieurs domaines, JSONP est ce que vous recherchez.

Quand utiliser synchrone

Vous devez d’abord savoir que définir async sur false bloque votre navigateur. Cela le verrouille complètement. Pas seulement votre page, mais chaque page ouverte par l'utilisateur. Par exemple, si votre serveur ralentit la mi-requête, vous avez effectivement désactivé son navigateur jusqu'à ce que votre serveur ait une chance de rattraper son retard et de transmettre les données nécessaires.

Au lieu de le risquer avec un appel synchrone, spécifiez simplement une fonction de rappel en cas de succès ou d'erreur. Vous obtenez le même point de terminaison sans pour autant ruiner l'expérience de navigation de l'utilisateur. En bref, n'utilisez pas un appel synchrone. C'est mauvais pour votre application et UX.

Différence entre synchrone et asynchrone en ajax