La diferencia entre ajax, json y jsonp

Difference Between Ajax

Primero, la comparación de ajax, json y jsonp

  1. Dos problemas con ajax
    1) ¿En qué formato intercambia datos ajax?
    2) Cómo resolver los requisitos entre dominios
    Los datos se describen entre dominios con cadenas personalizadas o en XML
    El dominio cruzado se puede resolver con un servidor proxy



  2. Comprensión del Ajax
    1) Ajax es una tecnología para enviar solicitudes http y comunicación asincrónica en segundo plano. Se comunica con el fondo para obtener datos e información. El principio es crear una instancia del objeto xmlhttp y usar este objeto para comunicarse con el fondo. . El proceso de comunicación ajax no afecta la ejecución de javascript posterior, implementando asincrónico
    2) Pasos para una solicitud AJAX completa:
    instanciar un objeto XMLHttpRequest
    Conectando al servidor
    Enviar petición
    Recibir datos de respuesta
    3) solución Ajax:
    json es un formato de intercambio de datos 'número oscuro', que describe el formato de información
    jsonp es un protocolo de interacción de datos de dominio cruzado no oficial, método de entrega de información de 'modo de unión' acordado por ambas partes, que se puede utilizar para dominios cruzados
    4) Actualización parcial de ajax
    ajax puede implementar una actualización parcial, también llamada sin actualización, sin actualización significa que toda la página no se actualiza, solo actualización parcial
    ajax puede enviar solicitudes http por sí mismo, sin pasar por la barra de direcciones del navegador, por lo que la página en su conjunto no se actualizará.
    ajax obtiene los datos de fondo, actualiza la parte de los datos de visualización de la página y actualiza la página parcialmente
    5) Interfaz de datos
    La interfaz de datos la proporciona el programa en segundo plano. Es una dirección URL. Al acceder a esta dirección, los datos se agregarán, eliminarán, cambiarán y verificarán. Finalmente, se devolverán los datos en formato json. Información de operación, el formato también puede ser texto, xml, etc.
    6) Política del mismo origen
    Las páginas o recursos solicitados por Ajax solo pueden ser recursos del mismo dominio, no recursos de otros dominios, lo que se basa en consideraciones de seguridad al diseñar ajax
    7) Cómo escribir ajax:
    Cómo utilizar:



|_+_|

Descripción de parámetros:
dirección de solicitud de URL
método de solicitud de tipo, el valor predeterminado es 'GET' y el que se usa comúnmente es 'POST'
dataType Establece el formato de datos devuelto, generalmente en formato 'json' o como 'html'
data establece los datos enviados al servidor
éxito Establezca la función de devolución de llamada después de que la solicitud sea exitosa
error Establece la función de devolución de llamada después de que falla la solicitud
La configuración asíncrona es asíncrona, el valor predeterminado es 'verdadero', lo que significa asíncrono
8) $.ajax({ url:'Request address', type: 'Request method: default is'GET', commonly used there'POST' ', dataType: 'Set the returned data format, commonly used is 'json'Format, can also be set to'html' ', data: 'Set the data sent to the server', success: 'Set the callback function after the request is successful', error: 'Set the callback function after the request failed', async: 'Set whether it is asynchronous, the default value is 'true', indicates asynchronous' }) Según el método de solicitud, se puede abreviar $.ajax o $.get la forma



|_+_|
  1. Comprensión de Json
    1) json es notación de objetos JavaScript, intercambio de datos basado en texto o formato de descripción de datos, un formato de datos de cadena común, un formato de intercambio de datos liviano, más pequeño, más rápido y más fácil de analizar que XML
    2) Ventajas de json
    Basado en texto sin formato, la entrega multiplataforma es extremadamente simple
    soporte nativo de javascript, casi todos los lenguajes de backend son compatibles
    Formato de datos liviano, que ocupa una cantidad muy pequeña de caracteres, especialmente adecuado para la entrega por Internet
    es más legible, no necesariamente xml de un vistazo, pero aún así es fácil de identificar después de una sangría razonable
    es fácil de escribir y analizar, por supuesto, la premisa es conocer la estructura de los datos
    3) json describe la estructura de datos de una manera muy simple. xml puede hacerlo todo.
    4) formato json o reglas
    json data dos tipos de datos Corchetes {} y corchetes [] El resto de los dos puntos en inglés, es el separador. Dos puntos: es el carácter del mapa. Comillas dobles en inglés '' es el delimitador.
    {} es una descripción de un conjunto de diferentes tipos de pares clave-valor desordenados. Cada par clave-valor se entiende como una descripción de atributo de OOP.
    [] es una colección que describe un conjunto de datos ordenados del mismo tipo.
    {} Los diferentes tipos de pares clave-valor desordenados y [] colecciones ordenadas del mismo tipo tienen varios subelementos separados por comas.
    Los pares clave-valor están separados por dos puntos en inglés: y los nombres de clave sugeridos se incluyen entre comillas dobles en inglés '' para el análisis de diferentes idiomas.
    El tipo de datos común dentro de json es una cadena (debe usar comillas dobles para otros fines). Número booleano Fecha nula, la fecha es especial

  2. Comprensión de Jsonp
    1) Razón de jsonp
    ajax solicita directamente que los archivos ordinarios tengan acceso entre dominios sin permiso (páginas estáticas, páginas dinámicas, servicios web, wcf siempre que no se permitan las solicitudes entre dominios)
    La llamada a archivos js en páginas web no se ve afectada por dominios cruzados (todas las etiquetas con atributos src tienen capacidades de dominio cruzado, script img iframe)
    Se puede juzgar que solo hay una posibilidad de acceder a los datos en todo el dominio a través de la web pura (control ActiveX, servidor proxy, H5 Websocket, etc.), es decir, intentar administrar en el servidor remoto. Cargue los datos en un archivo en formato js para la llamada del cliente y su procesamiento posterior
    El formato de carácter puro de json puede describir datos complejos de forma concisa y también es compatible con js de forma nativa.
    El cliente web invoca el archivo de formato js generado dinámicamente (sufijo .json) en el servidor entre dominios de la misma manera que el script de llamada. La razón por la que el servidor quiere generar dinámicamente el archivo json es usar el cliente. Los datos requeridos se cargan en él.
    Después de que el cliente llama con éxito al archivo json, el cliente necesita obtener los datos que necesita. El resto de los datos se procesan y muestran según sus propias necesidades. Esta forma de obtener datos remotos es muy similar a ajax.
    Para facilitar el uso de los datos por parte del cliente, se forma gradualmente el protocolo de transferencia informal jsonp.
    Uno de los puntos principales del protocolo es permitir que el usuario pase un parámetro de devolución de llamada al servidor. Cuando el servidor devuelve datos, el parámetro de devolución de llamada se utilizará como el nombre de la función para envolver los datos json para que el cliente pueda personalizar sus propias funciones para procesar automáticamente los datos devueltos.
    2) jsonp es un formato de comunicación de datos que puede enviar solicitudes http a través de dominios. Se puede incrustar en ajax. El principio es utilizar etiquetas de secuencia de comandos para vincular recursos entre dominios.
    3) JSONP consta de dos partes: función de devolución de llamada y datos. La función de devolución de llamada generalmente está controlada por el navegador y se envía al servidor como parámetro (por supuesto, también puede fijar el nombre de la función de devolución de llamada. Pero los nombres del cliente y del servidor deben ser los mismos). Cuando el servidor responde, el servidor pondrá la función y los datos en una cadena de retorno.
    4) Proceso de solicitud JSONP:
    fase de solicitud: el navegador crea una etiqueta de secuencia de comandos y asigna su valor src
    Enviar solicitud: al asignar un valor al src del script, el navegador iniciará una solicitud.
    Respuesta de datos: el servidor devolverá los datos que se devolverán como un parámetro y un nombre de función (formato similar a 'jsonpCallback ({nombre:' abc '})'). Cuando el navegador recibe los datos de respuesta, dado que la solicitud se inicia mediante un script, es equivalente a llamar al método jsonpCallback directamente y pasar un parámetro.
    5) El principio de JSONP:
    crea dinámicamente una etiqueta de secuencia de comandos en el lado del cliente, en lugar del objeto XHR, especifica script.src para realizar una solicitud al servidor. Además de devolver los datos requeridos, la página PHP solicitada debe completarse con un nombre de función específico
    6) jsonp solo admite solicitudes de obtención, ajax admite solicitudes de obtención y publicación
    7) Ajax solo puede solicitar datos o recursos en el mismo dominio. A veces es necesario solicitar datos en todos los dominios, debe utilizar la tecnología jsonp, jsonp puede solicitar datos en todos los dominios, su principio se utiliza principalmente

5. El núcleo esencial y la diferencia entre ajax y jsonp
1) Ajax y jsonp se llaman de la misma manera, el propósito es solicitar la URL y luego se procesan los datos devueltos por el servidor, por lo que los frameworks jquery y ext usan jsonp como ajax. una forma de encapsulación
2) Sustancialmente diferente
El núcleo de ajax es obtener contenido que no sea de página a través de xmlHttpRequest
El núcleo de jsonp es agregar dinámicamente etiquetas de script para llamar al script js proporcionado por el servidor.
3) Contacto de distinción
no se trata de dominios cruzados
ajax es de dominio cruzado como un servidor proxy
jsonp no excluye la adquisición de datos en el mismo dominio.
4) jsonp es una forma o un protocolo no obligatorio, ajax no tiene que usar el formato json para pasar datos
5) Diferencia entre la interfaz de datos ajax y la interfaz de datos jsonp
Desarrolle la interfaz para devolver datos. Si se trata de una interfaz ajax general, deje que la interfaz devuelva directamente la cadena de datos en formato json. Los datos de esta interfaz no se pueden solicitar a través de dominios. Para solicitar datos en todos los dominios, debe desarrollar la interfaz jsonp, desarrollar la interfaz jsonp, debe obtener los parámetros en la dirección de solicitud, que es el valor correspondiente a la clave 'callback', y luego ensamblar este valor y los datos json en un formulario de llamada de función. Se devuelve la cadena y se completa una interfaz jsonp. Este par clave-valor es generado automáticamente por la función $ .ajax.
El formato de datos devuelto por la interfaz general:
|_+_|
El formulario de datos devuelto por jsonp:
|_+_|