Foros del Web » Programando para Internet » Javascript »

error en ajax

Estas en el tema de error en ajax en el foro de Javascript en Foros del Web. Hola intento hacer mostrar contenido cuando la pagina va cargando esto lo quiero hacer con ajax todo funciona bien, pero estoy teniendo un problema desde ...
  #1 (permalink)  
Antiguo 12/10/2016, 07:18
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
error en ajax

Hola intento hacer mostrar contenido cuando la pagina va cargando esto lo quiero hacer con ajax todo funciona bien, pero estoy teniendo un problema desde los dispositivos moviles probe con android, el problema es que si el usuario hace muy rapido scroll en la segundo o tercera llamada ajax el readyState no cambia de 1, lo raro es que desde un pc funciona perfecto, no muestra ningun error mas es solo que no cambia el readyState.

que podria probar el codigo en si es muy simple solo que tiene una variable para saber si iniciar peticion o no.
alguna idea?

edito: añado informacion me dado cuenta que aveces el readyState empieza en 2 luego 3 muestra contenido pero si empieza en dos acaba mostrando luego readyState 1 es ahi donde esta mi problema.

porque deja el 1 para el final en algunas ocasiones y empieza por el 2 reitero me esta pasando con dispositivo android desde pc funciona bien.
saludos

Última edición por azaz; 12/10/2016 a las 07:46
  #2 (permalink)  
Antiguo 12/10/2016, 09:37
alvaro_trewhela
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: error en ajax

¿Cómo instancias el objeto xmlhttprequest?
  #3 (permalink)  
Antiguo 13/11/2016, 11:16
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 3 meses
Puntos: 10
Respuesta: error en ajax

Hola perdona que tarde tanto en responde estube fuera, estoy volviendo a mirar los errores que tiene mi codigo y aporto nueva informacion, lo que me esta pasando creo que es lo siguiente:

muestro contenido cuando el usuario llega al final de la pagina con el scroll antes, antes de hacer scroll tengo una variable que dice que si se puede enviar peticiones ajax cuando envia la primera peticion cambio la variable para decirle que no envie hasta aqui todo bien pero el problema lo tengo que si va muy rapido el usuario en hacer scroll antes de haber cargado o incluso haber empezado a cargar ajax la variable que permite enviar mas ajax se cambia y hace una nueva peticion entonces el ajax se cancela y ahi se para todo.

muestro codigo ejemplo


Código Javascript:
Ver original
  1. //creo el objeto httpRequest
  2. function objetoAjax(){
  3.     var req=false;
  4.     try{
  5.         req = new XMLHttpRequest();
  6.     }catch(err1){
  7.         try{
  8.             req = new ActiveXObject("Msxml2.XMLHTTP");
  9.         }catch(err2){
  10.             try{
  11.                req = new ActiveXObject("Microsoft.XMLHTTP");
  12.             }catch(err3){
  13.                 req = false;
  14.             }
  15.         }
  16.     }
  17.     return req;
  18. }
  19.  
  20.  
  21. xhr=true;
  22. window.addEventListener("scroll", function(){
  23.     var height=document.body.scrollHeight;
  24.         if(xhr){
  25.         if(this.scrollY + this.innerHeight >= height){
  26.             if(xhr){
  27.                            xhr=false;
  28.                            enviarXHR();
  29.             }  
  30.         }
  31.     }
  32. }, false); 
  33.  
  34. function enviarXHR(){
  35.       //Aqui la instancia y todo el codigo
  36.       //asi recupero los datos ajax
  37.     if(Ajax.readyState == 4 && (Ajax.status == 200 || Ajax.status == 501)){
  38.         if(Ajax.responseText!=""){
  39.                document.getElementById("informacion").innerHTML+=Ajax.responseText;
  40.                xhr=true;
  41.  
  42.         }
  43.     }
  44. }

El error solo ocurre en los moviles por eso mismo que el scroll es mas rapido y no da tiempo acabar la peticion cuando se inicia otra.

Creo que es ese el error como lo podria solucionar?
saludos
  #4 (permalink)  
Antiguo 13/11/2016, 14:15
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: error en ajax

¿Y si en lugar de usar una variable de control, eliminas el evento mientras se hace la petición y lo registras de nuevo cuando se reciba la respuesta?

Etiquetas: ajax, funcion
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 13:28.