hoy estoy lleno de preguntas sobre el trabajo asíncrono de jquery ajax. Soy bastante nuevo en js y especialmente en jquery.
Después de hacer clic en el botón, se abrió una nueva pestaña y se llenó con una solicitud bastante larga (se devolvieron muchos datos) y se congeló otra parte del sitio (botón de pestaña wi) hasta que se completó la solicitud. ¿Hay alguna posibilidad de que funcione de forma asíncrona, de modo que mi pestaña anterior funcione mientras se solicita el cálculo?
Código js actual para abrir una nueva ventana
ventana.abrir(solicitud, '_blank')
¿Cuál obviamente no es asíncrono?
Puede ser algo como
Var O = ventana.abrir() ; O. Ajax (blablabla)
UPD:
Resolví el problema creando un nuevo elemento con rel="norefferer" e imitando el clic en ese elemento, por lo que se abrirá una nueva pestaña en un nuevo proceso y no bloqueará la pestaña principal
AJAX es asíncrono (literalmente significa "JavaScript asíncrono y XML").
Solo necesita usarlo correctamente, de la siguiente manera:
$.ajax({ url: "https://www.example.com", "success": function(result) { // This part will be called after the ajax request was successful /* insert your code here, but be aware that, as CBroe noted in the comments, window.open() could be blocked by modern browser */ } });Lea la documentación de jquery en AJAX para obtener más información.