Maison >interface Web >Questions et réponses frontales >Quelle est la différence entre jsonp et ajax

Quelle est la différence entre jsonp et ajax

青灯夜游
青灯夜游original
2022-01-13 18:16:593583parcourir

Différence : 1. Le cœur d'ajax est d'obtenir le contenu autre que cette page via xmlHttpRequest, tandis que le cœur de jsonp est d'ajouter dynamiquement des balises de script pour appeler le script js fourni par le serveur 2. jsonp ne prend en charge que les requêtes get, tandis qu'Ajax prend en charge les demandes d'obtention et de publication.

Quelle est la différence entre jsonp et ajax

L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.

Les méthodes d'appel d'ajax et de jsonp sont très similaires. Le but est de demander l'URL puis de traiter les données renvoyées par le serveur. Par conséquent, des frameworks tels que jquery et ext encapsulent jsonp comme une forme d'ajax. Jetons un coup d'œil à jsonp et ajax et présentons leurs différences.

1. Le fonctionnement d'Ajax

équivaut à ajouter une couche intermédiaire (moteur AJAX) entre l'utilisateur et le serveur pour rendre les opérations de l'utilisateur et les réponses du serveur asynchrones. Le moteur Ajax effectuera une vérification des données et un traitement des données pour les demandes des utilisateurs. Toutes les demandes ne sont pas soumises au serveur. Lorsque de nouvelles données doivent être lues à partir du serveur, le moteur Ajax soumet la demande au serveur en son nom. Le plus grand avantage d'AJAX est qu'il communique avec le serveur pour conserver les données sans actualiser la page entière.

Processus :

Étape 1 : Créez un objet moteur ajax, IE6 est un nouvel ActiveXObject, les autres navigateurs sont un nouvel objet xmlHttpRequest

Étape 2 : Appelez la méthode open pour lancer une demande d'envoi, la méthode open passe Entrez trois paramètres ; : type de demande, URL de demande et une valeur booléenne ;

Étape 3 : Appelez la méthode d'envoi pour envoyer ;

Étape 4 : Traitez la fonction de rappel onreadystatechange, lorsque readState = 4 (données de réponse terminées) et status= Traitez la réponse. données lorsque 200 (demande réussie).

Remarque : La fonction de rappel doit être écrite avant open() et send().

2. Principe de fonctionnement de Jsonp

Créez dynamiquement une balise de script et utilisez l'attribut src de la balise de script pour obtenir un accès inter-domaines sans restrictions.

Le client web appelle le fichier au format js (suffixe .json) généré dynamiquement sur le serveur cross-domain de la même manière que l'appel du script. Le but du fichier json généré dynamiquement par le serveur est de charger les données requises par. le client.

Permet à l'utilisateur de transmettre un paramètre de rappel au serveur, puis lorsque le serveur renvoie des données, il utilisera ce paramètre de rappel comme nom de fonction pour envelopper les données json, afin que le client puisse personnaliser sa propre fonction pour traiter automatiquement les données renvoyées.

3. La différence entre Ajax et jsonp

  • Le cœur d'ajax est d'obtenir du contenu autre que cette page via xmlHttpRequest

    Le cœur de jsonp est d'ajouter dynamiquement des balises de script pour appeler le js ; script (suffixe .json) fourni par le serveur).

  • jsonp est une méthode ou un protocole non obligatoire, et ajax ne doit pas nécessairement utiliser le format json pour transmettre des données.

  • jsonp prend uniquement en charge les demandes d'obtention, et ajax prend en charge les demandes d'obtention et de publication.

[Recommandations de tutoriel associées : Tutoriel vidéo AJAX]

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