Foros del Web » Programando para Internet » PHP »

cancelar peticion en curso

Estas en el tema de cancelar peticion en curso en el foro de PHP en Foros del Web. Saludos a todos, tengo una aplicacion que tiene un boton que es para analizar determinado codigo, esto puede tardar un tiempo para terminar, ademas tengo ...
  #1 (permalink)  
Antiguo 11/04/2010, 23:13
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
cancelar peticion en curso

Saludos a todos, tengo una aplicacion que tiene un boton que es para analizar determinado codigo, esto puede tardar un tiempo para terminar, ademas tengo otro boton que es para cancelar ese analisis. Mi duda es como lograr cancelar la primera peticion que se realiza, es decir cuando presione el boton cancelar se cancele la primera peticion que se realizo, es decir el analizar. He estado probando pero para lograr esto se espera a que termine la primera peticion de analizar y no es la idea.
  #2 (permalink)  
Antiguo 11/04/2010, 23:25
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: cancelar peticion en curso

pues depende mucho de como haces la primer acción para poder cancelarla... en si, podrías comprobar en cada paso del proceso si existe o no determinado archivo, por ejemplo, y cuando cancelas creas tal archivo...

así en la comprobación al detectar dicho archivo detiene el proceso, en si... no es muy fácil de explicar sin saber bien como lo estas haciendo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 11/04/2010, 23:33
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: cancelar peticion en curso

gracias por responder, en realidad no entendi lo que me planteas, a ver si me entiendes. Ante todo trabajo con ajax, tengo una aplicacion que analiza codigo fuente, esta tarea como es de suponer tarda un tiempo no corto, la idea es poder cancelar esto cuando el usuario lo desee. El servidor responde una solicitud segun el orden en que hayan llegado al mismo, es decir, cuando doy analizar y luego cancelar, se espera primero a que se termine la peticion a analizar para atender el cancelar , no se si me comprendes, saludos.
  #4 (permalink)  
Antiguo 11/04/2010, 23:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: cancelar peticion en curso

claro que comprendo, y no importa si usas Ajax o no... la idea es la misma: crear un sistema de bloqueo basado en tu código de análisis...

digamos, antes de cada vuelta del proceso un simple if-then-else comprobando determinada variable, que puede ser un archivo.... si no existiera entonces el proceso continua, si existe se detiene y se borra el archivo de bloqueo... ;)

ahora si se entiende?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/04/2010, 23:46
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: cancelar peticion en curso

bien ahora entiendo mejor, mira lo que estoy haciendo es algo mas o menos parecido lo que tengo es un ciclo para analizar archvios y dentro de este tengo un if que pregunta por una variable de sesion que seria la bandera del cancelar, si esta creada esta variable doy un break al ciclo y termino. Esto no me funciona sino que todo sigue igual. No se si con lo que me propones de crear un archivo funcione.
  #6 (permalink)  
Antiguo 12/04/2010, 00:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: cancelar peticion en curso

Cita:
Iniciado por blesther Ver Mensaje
bien ahora entiendo mejor, mira lo que estoy haciendo es algo mas o menos parecido lo que tengo es un ciclo para analizar archvios y dentro de este tengo un if que pregunta por una variable de sesion que seria la bandera del cancelar, si esta creada esta variable doy un break al ciclo y termino. Esto no me funciona sino que todo sigue igual. No se si con lo que me propones de crear un archivo funcione.
de hecho debería... ya que en la forma en que lo haces, con sesiones, es incongruente... ya que al ser PHP un lenguaje stateless solo lee las sesiones antes de envíar el contenido al navegador ya que se basa en cookies...

entonces aunque creas la variable con otro script no esta al alcance de tu primer script, ya que éste debería terminar para retomar dichas variables...

en todo caso un archivo es mas factible, ya que el sistema de archivos es el mismo y podría decirse que es en tiempo real... si creas un archivo con algún script se puede comprobar con otro, aunque este en proceso aún...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 12/04/2010, 01:21
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: cancelar peticion en curso

Añado, hay una función llamada abort, que detiene el proceso de AJAX. El problema más bien estará con PHP, que pudiera darse el casó que terminaste el proceso de javascript, pero todavia sigue corriendo el código de PHP. Para ello te recomiendo que mires como funciona este código de chat para que tengas una idea de como lograr que cuando una persona se vaya el código de PHP se detenga http://www.forosdelweb.com/2813329-post33.html. El "truco" está en las funciones ignore_user_abort y connection_status.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 12/04/2010, 10:38
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: cancelar peticion en curso

Gracias a los 2. Me funciono.
  #9 (permalink)  
Antiguo 12/04/2010, 11:43
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: cancelar peticion en curso

y ¿que hiciste?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #10 (permalink)  
Antiguo 12/04/2010, 12:21
Avatar de blesther  
Fecha de Ingreso: abril-2008
Mensajes: 141
Antigüedad: 16 años
Puntos: 0
Respuesta: cancelar peticion en curso

Bueno disculpen por no dar la solucion anteriormente. Hice exactamente lo que me dijo pateketrueke, venia como anillo al dedo para lo que necesitaba. Cuando presiono el boton analizar creo un archivo temporal, el cual borro cuando se presiona cancelar. Como la condicion de parada del analizar es si no esta el archvio temporal, todo funciona bien.

Etiquetas: curso, peticion
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 09:31.