Foros del Web » Programando para Internet » Jquery »

loading ajax

Estas en el tema de loading ajax en el foro de Jquery en Foros del Web. Hola tengo una duda con este script que funciona perfecto: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original < script > var request = $. ajax ...
  #1 (permalink)  
Antiguo 25/06/2016, 14:38
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
loading ajax

Hola
tengo una duda con este script que funciona perfecto:
Código Javascript:
Ver original
  1. <script>
  2. var request = $.ajax({
  3.             url: "index.ajax.php?datos",
  4.             method: "POST",
  5.             dataType: "json",
  6.             async: true,
  7.             beforeSend: function() { $("body").addClass("loading"); },
  8.             complete: function() { $("body").removeClass("loading"); }
  9.         });
  10. </script>

el problema es que con async: false, NO funciona el beforeSend: y el complete:

que solucion podria haber?
es que es necesito si o si que async sea FALSE.
  #2 (permalink)  
Antiguo 25/06/2016, 15:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: loading ajax

Al ser una petición síncrona, el resultado se mostrará cuando se haya completado la petición, obviando la carga. Lo que podrías hacer es mostrar la carga cuando cuando esta haya terminado y solo tendrías que retrasar la muestra del resultado utilizando un temporizador. Es lo más cercano que puedes estar de conseguir ese efecto, al menos en una petición síncrona.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 25/06/2016, 16:00
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: loading ajax

si claro con setTimeout("esperar()",3000);
pero quiero evitar eso, por que minimo tendria que esperar 2 0 3 segundos
  #4 (permalink)  
Antiguo 25/06/2016, 16:03
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: loading ajax

Entonces, realiza una petición asíncrona. No hay forma de que lo hagas de la otra manera como si fuera una petición asíncrona, o ve la manera de hacerlo de forma asíncrona sin que perjudique a lo que estás haciendo.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 25/06/2016, 16:14
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: loading ajax

el problema es que necesito hacer 2 o 3 llamadas a ajax y dependo de cada resultado para avanzar al siguente.
  #6 (permalink)  
Antiguo 25/06/2016, 16:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: loading ajax

Entonces, utiliza promesas.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #7 (permalink)  
Antiguo 25/06/2016, 19:29
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: loading ajax

Interesante
no sabia que existia algo así pero lo suponia que de alguna forma se podria resolver

luego les diré como lo resolví

Etiquetas: ajax, funcion, javascript, js, loading, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:22.