Ver Mensaje Individual
  #3 (permalink)  
Antiguo 13/11/2016, 11:16
azaz
 
Fecha de Ingreso: enero-2011
Mensajes: 1.150
Antigüedad: 13 años, 4 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