Maison interface Web js tutoriel Comment implémenter des requêtes synchrones asynchrones en AJAX

Comment implémenter des requêtes synchrones asynchrones en AJAX

Dec 04, 2017 pm 01:43 PM
ajax 同步 异步

Ce tutoriel explique comment implémenter des requêtes asynchrones et synchrones dans AJAX. Nous savons que le type FormData et l'interface d'écoute d'événements nécessitent l'implémentation d'AJAX. Existe-t-il donc un moyen de demander au serveur uniquement lorsque les données de la page changent ? remplacer dynamiquement les données affichées sur la page par de nouvelles données tout en empêchant le rafraîchissement de la page ? Aujourd'hui, parlons du concept d'AJAX.

Objet XMLHttpRequest

XMLHttpRequest est juste un Objet JavaScript, pour être précis, c'est un constructeur. En d’autres termes, ce n’est pas du tout mystérieux, la seule particularité est qu’il est fourni par le client (c’est-à-dire le navigateur) (plutôt que d’être natif de JavaScript. De plus, il possède des propriétés, des méthodes et). nécessite l'instanciation via le nouveau mot-clé, il suffit de les maîtriser

XMLHttpRequest pour obtenir des données

Nous savons qu'AJAX est utilisé pour obtenir des données dans le projet en empêchant le rafraîchissement de la page, puis où d'où viennent les données ? Comment savons-nous comment obtenir ces données ? La réponse est que nous utilisons généralement des API pour interagir avec diverses bases de données.

"API" est l'abréviation de "Application Programming Interface" (c'est-à-dire : Application Programming Interface). Vous pouvez imaginer que certaines données sont ouvertes et attendent d'être utilisées, et la façon dont nous obtenons ces données est de les utiliser. l'API. La forme habituelle d'une API est une URL et fournit des noms de paramètres et des valeurs de paramètres spécifiés pour vous aider à localiser les données que vous souhaitez obtenir.

XMLHttpRequest - Préparer la demande

Pour interagir avec le serveur, vous devez d'abord réfléchir aux questions suivantes :

Voulons-nous obtenir des données ou stocker des données ? ——La méthode de requête est « GET » ou « POST ». Où envoyer la requête ?   ——C'est-à-dire l'adresse API correspondante. Comment attendre la réponse ? - Il existe deux options : "synchrone" et "asynchrone"

La méthode .open() de l'instance XMLHttpRequest est utilisée pour répondre aux trois questions ci-dessus. La méthode .open() reçoit trois paramètres : la méthode de requête, l'adresse URL de la requête et une valeur booléenne indiquant s'il s'agit d'une requête asynchrone.

Ce qui suit est un exemple d'appel de la méthode .open() :

// Ce code lancera une requête synchrone GET pour "example.php".

xhr.open("get", "example.php", false)

// "DELETE", "HEAD", "OPTONS", "PUT" peut également être utilisé comme open( ) premier paramètre de la méthode.

Dans le code ci-dessus, la synchronisation est réalisée en passant le troisième paramètre comme faux. Il convient de noter qu'une fois définie sur synchrone, la méthode send() se bloquera jusqu'à ce que la requête soit terminée.

(3) Requêtes synchrones et requêtes asynchrones

Les gens pensent généralement qu'AJAX est asynchrone, mais en fait ce n'est pas le cas. AJAX est une technologie permettant d'éviter de rafraîchir la page après avoir obtenu les données. pour attendre le serveur Que la méthode de réponse soit synchrone ou asynchrone, les développeurs doivent la configurer en fonction des besoins de l'entreprise (bien qu'elle soit généralement asynchrone).

Vous pourriez être curieux, quand devons-nous utiliser l'AJAX synchrone ? D'après mon expérience personnelle, il semble difficile de trouver la scène correspondante.

Enfin, expliquons brièvement la différence entre « synchrone » en attente d'une réponse et « asynchrone » en attente d'une réponse : « Synchrone » signifie qu'une fois la requête envoyée, tout code JavaScript ultérieur ne sera pas exécuté, tandis que « asynchrone » signifie que lorsque la requête est envoyée, le code JavaScript suivant continuera à s'exécuter. Lorsque la requête réussit, la fonction de rappel correspondante sera appelée.

Type FormData XMLHttpRequest niveau 2

Le W3C a proposé la spécification XMLHttpRequest niveau 2 Bien que tous les navigateurs n'aient pas implémenté le contenu spécifié dans la spécification, certains contenus sont encore entièrement ou implémentés. par la plupart des navigateurs.

Type FormData

FormData est un nouveau type de données (constructeur) qui nous est fourni par XMLHttpRequest niveau 2. Rappelez-vous également comment déguiser une requête POST Soumettre un formulaire ? FormData facilite ce processus car l'objet XHR2 reconnaît que le type de données transmis est une instance de FormData et configure automatiquement les informations d'en-tête appropriées.

Comment déguiser une requête POST en soumission de formulaire ?

Lorsque vous utilisez la méthode POST pour soumettre les données du formulaire dans cette séquence, l'en-tête de requête "Content-Type" doit être défini sur cette valeur.

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

Remarque : Il ne s'agit pas d'une valeur obligatoire lors de l'utilisation du formulaire car il s'agit de la valeur par défaut. méthode.

FormData est utilisé comme suit :

// 添加数据
let data1 = new FormData()
data1.append("name", "Tom")
xhr.send(data1)
 
// 提取表单数据
let data2 = new FormData(document.forms[0])
xhr.send(data2)
Copier après la connexion

De plus, un autre avantage de FormData est que par rapport aux requêtes AJAX traditionnelles, il nous permet de télécharger des données binaires (images, vidéos, audio, etc.).

Compatibilité du navigateur pour FormData.

Support de bureau IE 10+ et d'autres navigateurs

Mobile Android, Firefox Mobile, OperaMobile sont pris en charge, les autres navigateurs sont inconnus

Interface de surveillance des événements XMLHttpRequest niveau 2

La première version de XMLHttpRequest ne peut spécifier qu'une fonction de rappel pour l'événement onreadystatechange. L'événement répond à toutes les situations.

La deuxième version de XMLHttpRequest permet de spécifier des fonctions de rappel pour plus d'événements.

onloadstart Requête émise

onprogress Envoi et chargement des données

onabort La requête a été abandonnée, par exemple, l'utilisateur a appelé la méthode abort()

onerror La demande a échoué

onload La demande est terminée avec succès

ontimeout Le délai spécifié par l'utilisateur a expiré et la demande n'a pas été complétée

onloadend La demande est terminée quel que soit le le résultat ou l'échec


Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture connexe :

Résumé et explication de l'utilisation du framework front-end js

Comment résoudre le problème d'ajax unité lors de l'analyse des données json Sous forme de secondes

Étapes pour implémenter le téléchargement de fichiers avec js et servlet dans h5

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas à l'erreur Outlook Mar 18, 2024 am 09:46 AM

Lorsque vous constatez qu'un ou plusieurs éléments de votre dossier de synchronisation ne correspondent pas au message d'erreur dans Outlook, cela peut être dû au fait que vous avez mis à jour ou annulé des éléments de réunion. Dans ce cas, vous verrez un message d'erreur indiquant que votre version locale des données est en conflit avec la copie distante. Cette situation se produit généralement dans l'application de bureau Outlook. Un ou plusieurs éléments du dossier que vous avez synchronisé ne correspondent pas. Pour résoudre le conflit, ouvrez les projets et retentez l'opération. Réparer Un ou plusieurs éléments dans les dossiers synchronisés ne correspondent pas à l'erreur Outlook Dans la version de bureau d'Outlook, vous pouvez rencontrer des problèmes lorsque des éléments du calendrier local entrent en conflit avec la copie du serveur. Heureusement, il existe des moyens simples d’aider

Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Comment résoudre l'erreur 403 rencontrée par la requête jQuery AJAX Feb 20, 2024 am 10:07 AM

Titre : Méthodes et exemples de code pour résoudre les erreurs 403 dans les requêtes jQuery AJAX L'erreur 403 fait référence à une demande selon laquelle le serveur interdit l'accès à une ressource. Cette erreur se produit généralement parce que la demande manque d'autorisations ou est rejetée par le serveur. Lorsque vous effectuez des requêtes jQueryAJAX, vous rencontrez parfois cette situation. Cet article explique comment résoudre ce problème et fournit des exemples de code. Solution : Vérifiez les autorisations : assurez-vous d'abord que l'adresse URL demandée est correcte et vérifiez que vous disposez des autorisations suffisantes pour accéder à la ressource.

Comment résoudre l'erreur 403 de la requête jQuery AJAX Comment résoudre l'erreur 403 de la requête jQuery AJAX Feb 19, 2024 pm 05:55 PM

jQuery est une bibliothèque JavaScript populaire utilisée pour simplifier le développement côté client. AJAX est une technologie qui envoie des requêtes asynchrones et interagit avec le serveur sans recharger la page Web entière. Cependant, lorsque vous utilisez jQuery pour effectuer des requêtes AJAX, vous rencontrez parfois des erreurs 403. Les erreurs 403 sont généralement des erreurs d'accès refusé par le serveur, probablement en raison de problèmes de politique de sécurité ou d'autorisation. Dans cet article, nous verrons comment résoudre la requête jQueryAJAX rencontrant une erreur 403.

Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Comment résoudre le problème de l'erreur 403 jQuery AJAX ? Feb 23, 2024 pm 04:27 PM

Comment résoudre le problème de l’erreur 403 jQueryAJAX ? Lors du développement d'applications Web, jQuery est souvent utilisé pour envoyer des requêtes asynchrones. Cependant, vous pouvez parfois rencontrer le code d'erreur 403 lors de l'utilisation de jQueryAJAX, indiquant que l'accès est interdit par le serveur. Cela est généralement dû aux paramètres de sécurité côté serveur, mais il existe des moyens de résoudre le problème. Cet article explique comment résoudre le problème de l'erreur 403 jQueryAJAX et fournit des exemples de code spécifiques. 1. faire

Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Comment obtenir des variables de la méthode PHP en utilisant Ajax ? Mar 09, 2024 pm 05:36 PM

L'utilisation d'Ajax pour obtenir des variables à partir de méthodes PHP est un scénario courant dans le développement Web. Grâce à Ajax, la page peut être obtenue dynamiquement sans actualiser les données. Dans cet article, nous présenterons comment utiliser Ajax pour obtenir des variables à partir de méthodes PHP et fournirons des exemples de code spécifiques. Tout d’abord, nous devons écrire un fichier PHP pour gérer la requête Ajax et renvoyer les variables requises. Voici un exemple de code pour un simple fichier PHP getData.php :

PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique PHP et Ajax : créer un moteur de suggestions de saisie semi-automatique Jun 02, 2024 pm 08:39 PM

Créez un moteur de suggestions de saisie semi-automatique en utilisant PHP et Ajax : Script côté serveur : gère les requêtes Ajax et renvoie des suggestions (autocomplete.php). Script client : envoyer une requête Ajax et afficher des suggestions (autocomplete.js). Cas pratique : Incluez le script dans la page HTML et spécifiez l'identifiant de l'élément d'entrée de recherche.

PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement PHP vs Ajax : solutions pour créer du contenu chargé dynamiquement Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript et XML) permet d'ajouter du contenu dynamique sans recharger la page. En utilisant PHP et Ajax, vous pouvez charger dynamiquement une liste de produits : HTML crée une page avec un élément conteneur et la requête Ajax ajoute les données à l'élément après l'avoir chargé. JavaScript utilise Ajax pour envoyer une requête au serveur via XMLHttpRequest afin d'obtenir des données produit au format JSON à partir du serveur. PHP utilise MySQL pour interroger les données produit de la base de données et les encoder au format JSON. JavaScript analyse les données JSON et les affiche dans le conteneur de pages. Cliquer sur le bouton déclenche une requête Ajax pour charger la liste de produits.

Guide avancé de Python asyncio : du débutant à l'expert Guide avancé de Python asyncio : du débutant à l'expert Mar 04, 2024 am 09:43 AM

Programmation simultanée et asynchrone La programmation simultanée traite de plusieurs tâches s'exécutant simultanément, la programmation asynchrone est un type de programmation simultanée dans laquelle les tâches ne bloquent pas les threads. asyncio est une bibliothèque de programmation asynchrone en python, qui permet aux programmes d'effectuer des opérations d'E/S sans bloquer le thread principal. Boucle d'événements Le cœur d'asyncio est la boucle d'événements, qui surveille les événements d'E/S et planifie les tâches correspondantes. Lorsqu'une coroutine est prête, la boucle d'événements l'exécute jusqu'à ce qu'elle attende les opérations d'E/S. Il met ensuite la coroutine en pause et continue d'exécuter d'autres coroutines. Coroutines Les coroutines sont des fonctions qui peuvent suspendre et reprendre l'exécution. Le mot-clé asyncdef est utilisé pour créer des coroutines. La coroutine utilise le mot-clé wait pour attendre la fin de l'opération d'E/S. Les bases suivantes d'asyncio

See all articles