$.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.
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"]});
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.
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.
Respuestas:
$.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/
fuente
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 unaGET
solicitud de Ajax . Los datos devueltos (que pueden ser cualquier dato) se pasarán a su controlador de devolución de llamada.$(selector).load()
ejecutará unaGET
solicitud 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()
.fuente
http://api.jquery.com/jQuery.ajax/
El monty completo, le permite realizar cualquier tipo de solicitud de Ajax.
http://api.jquery.com/jQuery.get/
Solo le permite realizar solicitudes HTTP GET, requiere un poco menos de configuración.
http://api.jquery.com/load/
Especializado para obtener datos e inyectarlos en un elemento.
fuente
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.fuente
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/ )
fuente
Todos tienen razón. Las funciones
.load
,.get
y.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:
GET tiene lo siguiente:
LOAD tiene lo siguiente:
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
$_POST
en 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.fuente
$.load()
es una función auxiliar que solo se puede invocar en elementos.$.ajax()
te da el mayor control puede especificar si desea PUBLICAR datos, recibió más devoluciones de llamada, etc.fuente
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=subroto
lo 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.fuente
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
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
No existe tal característica incorporada proporcionada por otros métodos en discusión.
fuente