¿Cómo puedo averiguar qué método es mejor para una situación? ¿Alguien puede proporcionar algunos ejemplos para conocer la diferencia en términos de funcionalidad y rendimiento?
XMLHttpRequest es el objeto de navegador sin procesar que jQuery envuelve en una forma más utilizable y simplificada y una funcionalidad consistente entre navegadores.
jQuery.ajax es un solicitante general de Ajax en jQuery que puede realizar solicitudes de cualquier tipo y contenido.
jQuery.get y jQuery.post , por otro lado, solo pueden emitir solicitudes GET y POST. Si no sabe cuáles son, debe verificar elprotocolo HTTP y aprender un poco. Internamente, estas dos funciones usan jQuery.ajax pero usan configuraciones particulares que no tiene que configurar usted mismo, lo que simplifica la solicitud GET o POST en comparación con el uso de jQuery.ajax . GET y POST son los métodos HTTP más utilizados de todos modos (en comparación con DELETE, PUT, HEAD o incluso otros métodos exóticos poco utilizados).
Todas las funciones de jQuery usan el objeto XMLHttpRequest en segundo plano, pero brindan una funcionalidad adicional que no tiene que hacer usted mismo.
Entonces, si está usando jQuery, le recomiendo encarecidamente que use solo la funcionalidad de jQuery. Olvídese de XMLHttpRequest por completo. Use variaciones adecuadas de la función de solicitud de jQuery y, en todos los demás casos, use $.ajax() . Así que no olvide que hay otras funciones comunes relacionadas con jQuery Ajax para $.get() , $.post() y $.ajax() . Bueno, puede usar $.ajax() para todas sus solicitudes, pero tendrá que escribir un poco más de código, porque necesita un poco más de opciones para llamarlo.
Es como si pudiera comprarse un motor de automóvil y tendría que crear un automóvil completo a su alrededor con dirección, frenos, etc. Los fabricantes de automóviles producen automóviles completos, con una interfaz amigable (pedales, volante, etc.) para que no tengas que hacerlo todo tú mismo.
Cada uno de ellos usa XMLHttpRequest. Esto es lo que utiliza el navegador para realizar la solicitud. jQuery es solo una biblioteca de JavaScript y el método $.ajax se usa para hacer una XMLHttpRequest.
$.post y $.get son solo versiones abreviadas de $.ajax . Hacen más o menos lo mismo, pero hacen que sea más rápido escribir una solicitud AJAX: $.post hace una solicitud HTTP POST y $.get hace una solicitud HTTP GET.
jQuery.get es un contenedor para jQuery.ajax , que es un contenedor para XMLHttpRequest.
XMLHttpRequest y Fetch API (experimental en este momento) son los únicos en DOM, por lo que deberían ser los más rápidos.
Vi mucha información que ya no es precisa, así que hice una página de prueba donde cualquiera puede probar versión a partir de cuál es la mejor en cualquier momento:
https://jsperf.com/xhr-vs-jquery-ajax-vs-get-vs-fetch
Mis pruebas de hoy muestran que solo jQuery no es una solución limpia o incluso rápida, los resultados para mí en dispositivos móviles o de escritorio muestran que jQuery es, al menos, un 80% más lento que XHR2, si está usando demasiado ajax, en dispositivos móviles, llevará mucho tiempo cargar un sitio simple.
El uso en sí también está en el enlace.