Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/10/2012, 11:08
minombreesmm
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 7 meses
Puntos: 52
Como detener o cancelar proceso ajax en plena ejecucion?

tengo una galeria de fotos, las fotos cuando carga la pagina todas almaceno en un arreglo la ruta tomada de la base de datos..
osea que nomas con presionar los botones atras adelante la recorro a excepcion de los comentarios de las fotos que vuelvo a cargar de la base de datos a ver si hay nuevos.
Código Javascript:
Ver original
  1. $('#back').click(function(){
  2. i--;
  3.      var foto=fotos[i];
  4.      var idcomentario=comentarios[i];
  5.    
  6.      document.getElementById('imgcompleta').src = foto;//cada que recorro
  7. muestro en grande la foto
  8.  
  9.     Vercomentarios('POST',idcomentario,<? echo $id; ?>);//muestro los comentarios de la foto
  10.  
  11. }
el problema es que como es una galeria de foto doy la facilidad al usuario de clickearle a la foto directamente y esto hace que la foto se muestre en grande y ademas sus comentarios(en este caso vuelvo a extraer todo comentarios, fotos de la base de datos, y vuelvo a llenar el arreglo, hasta alli todo bien.


el problema surge que cuando doy siguiente o atras, como el caso que pongo.. si hay muchos comentarios o un comentario muy largo en la foto, entonces demoran en cargar unos 5 segundos, si son unos 200 lineas por alli por ejemplo.

entonces si doy atras carga la foto rapido, pues esta en el arreglo, pero los comentarios,(muestro un gif de cargando, mientras se carga) duran 6 segundos, lapso suficiente para que el usuario decida ver otra foto.
hace click directo a una foto de la galeria y se muestra imediatamente, pero ojo, todavia esta cargadno los otros comentarios(lo ideal seria que dejara de cargarlos eh hiciera la otra peticion para la foto clicqueada, cosa que hace normalmente cuando no se estan cargando comentarios), apenas va en el segundo 3 y el usuario ya tiene en pantalla la otra foto, entonces lo que ocurre es que cuando ya termina de cargar el comentario en el div, entonces ya no pertenecen a esa foto nueva que dio clic el usuario..

por eso se me hace la mejor forma, cancelar el proceso ajax que se esta ejecutando si es que el usuario selecciono ya otra foto. como hacer eso?

en java eran hilos y solo ponia.
Código java:
Ver original
  1. Thread.stop();
pero esto es javascript XD
de antemano gracias