Diferencia entre $ .ajax () y $ .get () y $ .load ()


Respuestas:


241

$.ajax()es el más configurable, donde obtienes un control preciso sobre los encabezados HTTP y demás. También puede obtener acceso directo al objeto XHR utilizando este método. También se proporciona un manejo de errores un poco más fino. Por lo tanto, puede ser más complicado y a menudo innecesario, pero a veces muy útil. Tiene que lidiar con los datos devueltos usted mismo con una devolución de llamada.

$.get()es solo una abreviatura, $.ajax()pero extrae algunas de las configuraciones, estableciendo valores predeterminados razonables para lo que se esconde de usted. Devuelve los datos a una devolución de llamada. Solo permite solicitudes GET, por lo que se acompaña de la $.post()función de abstracción similar, solo para POST

.load()es similar $.get()pero agrega una funcionalidad que le permite definir en qué parte del documento se insertarán los datos devueltos. Por lo tanto, solo se puede usar cuando la llamada solo dará como resultado HTML. Se llama de manera ligeramente diferente a las otras llamadas globales, ya que es un método vinculado a un elemento DOM jQuery envuelto en particular. Por lo tanto, uno haría:$('#divWantingContent').load(...)

Cabe señalar que todos $.get(), $.post(), .load()son todas las envolturas sólo para $.ajax()como se llama internamente.

Más detalles en la documentación de Ajax de jQuery: http://api.jquery.com/category/ajax/


3
@UzairAli no, literalmente toma las variables que le pasas y las usa para ejecutar jQuery.ajax ()
lisburnite

1
Genial, .load () es simplemente HTML y .get () es útil para más cosas.
Luigi Lopez

30

Los métodos proporcionan diferentes capas de abstracción.

  • $.ajax()le da control total sobre la solicitud de Ajax. Debe usarlo si los otros métodos no satisfacen sus necesidades.

  • $.get()ejecuta una GETsolicitud de Ajax . Los datos devueltos (que pueden ser cualquier dato) se pasarán a su controlador de devolución de llamada.

  • $(selector).load()ejecutará una GETsolicitud de Ajax y establecerá el contenido de los datos devueltos seleccionados (que deben ser texto o HTML).

Depende de la situación, qué método debe utilizar. Si desea hacer cosas simples, no hay necesidad de molestarse $.ajax().

Por ejemplo, no usará $.load(), si los datos devueltos serán JSON, que deben procesarse más. Aquí usarías $.ajax()o $.get().


9

http://api.jquery.com/jQuery.ajax/

jQuery.ajax()

Descripción: realice una solicitud asincrónica de HTTP (Ajax).

El monty completo, le permite realizar cualquier tipo de solicitud de Ajax.


http://api.jquery.com/jQuery.get/

jQuery.get()

Descripción: Cargue datos del servidor utilizando una solicitud HTTP GET.

Solo le permite realizar solicitudes HTTP GET, requiere un poco menos de configuración.


http://api.jquery.com/load/

.load()

Descripción: Cargue datos del servidor y coloque el HTML devuelto en el elemento coincidente.

Especializado para obtener datos e inyectarlos en un elemento.


8

Muy básico pero

  • $.load(): Cargue un trozo de html en un contenedor DOM.
  • $.get(): Úselo si desea realizar una llamada GET y jugar mucho con la respuesta.
  • $.post(): Use esto si desea hacer una llamada POST y no desea cargar la respuesta a algún DOM del contenedor.
  • $.ajax(): Use esto si necesita hacer algo cuando XHR falla, o si necesita especificar opciones ajax (por ejemplo, caché: verdadero) sobre la marcha.

5

Nota importante: el método jQuery.load () puede hacer no solo GET sino también solicitudes POST , si se proporciona el parámetro de datos (consulte: http://api.jquery.com/load/ )

Tipo de datos : Objeto simple o Cadena Un objeto o cadena simple que se envía al servidor con la solicitud.

Método de solicitud El método POST se utiliza si los datos se proporcionan como un objeto; de lo contrario, se supone GET .

Example: pass arrays of data to the server (POST request)
$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );

3

Todos tienen razón. Las funciones .load, .gety .post, son diferentes formas de usar la función .ajax.

Personalmente, encuentro la función cruda .ajax muy confusa, y prefiero usar load, get o post cuando lo necesito.

POST tiene la siguiente estructura:

$.post(target, post_data, function(response) { });

GET tiene lo siguiente:

$.get(target, post_data, function(response) { });

LOAD tiene lo siguiente:

$(*selector*).load(target, post_data, function(response) { });

Como puede ver, hay pequeñas diferencias entre ellos, porque es la situación la que determina cuál usar. ¿Necesita enviar la información a un archivo internamente? Use .post (esta sería la mayoría de los casos). ¿Necesita enviar la información de tal manera que pueda proporcionar un enlace al momento específico? Use .get. Ambos permiten una devolución de llamada donde puede manejar la respuesta de los archivos.

Una nota importante es que .load actúa de dos maneras diferentes. Si solo proporciona la URL del documento de destino, actuará como un get (y digo actuar porque probé la comprobación $_POSTen el PHP llamado mientras usaba el comportamiento predeterminado de carga y detecta $_POST, no $_GET; tal vez sería más preciso decir que actúa como .post sin ningún argumento); sin embargo, como http://api.jquery.com/load/dice, una vez que proporcione una serie de argumentos para la función, PUBLICARÁ la información en el archivo. Cualquiera sea el caso, la función .load insertará directamente la información en un elemento DOM, que en MUCHOS casos es muy legible y muy directo; pero aún así proporciona una devolución de llamada si desea hacer algo más con la respuesta. Además, .load le permite extraer un determinado bloque de código de un archivo, brindándole la posibilidad de guardar un catálogo, por ejemplo, en un archivo html, y recuperar partes de él (elementos) directamente en elementos DOM.



1

Ambos se utilizan para enviar algunos datos y recibir alguna respuesta utilizando esos datos.

OBTENER : obtener información almacenada en el servidor. (es decir, búsqueda, tweet, información de la persona). Si desea enviar información, obtenga la solicitud de envío de solicitud, por process.php?name=subrotolo que básicamente envía información a través de la URL. La URL no puede manejar más de 2036 caracteres. Entonces, para una publicación de blog, ¿puedes recordar que no es posible?

POST : Publica hacer lo mismo que GET. Registro de usuario, inicio de sesión de usuario, envío de Big Data, publicación de blog. Si necesita enviar información segura, use post o para big data, ya que no pasa por la URL.

AJAX : $.get()y $.post()contiene características que son subconjuntos de $.ajax(). Tiene más configuración.

$.get ()método, que es una especie de taquigrafía para $.ajax(). Al usar $.get (), en lugar de pasar un objeto, pasa argumentos. Como mínimo, necesitará los dos primeros argumentos, que son la URL del archivo que desea recuperar (por ejemplo, test.txt) y una devolución de llamada exitosa.


0

Todos explicaron el tema muy bien. Hay un punto más que me gustaría agregar sobre el método .load ().

Según Load document, si agrega un selector con sufijo en la url de datos, no ejecutará scripts al cargar contenido.

Trabajador Plunker

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html #content");
            })

Por otro lado, después de eliminar el selector en la url, se ejecutarán scripts en contenido nuevo. Prueba este ejemplo

después de eliminar #content en url en el archivo index.html

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html");
            })

No existe tal característica incorporada proporcionada por otros métodos en discusión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.