2012-03-21 14 views
7

Tengo un cargador de imágenes que una vez cargada la imagen se procesa. La carga y el procesamiento pueden demorar más de 5 segundos en una conexión lenta. Agregué una forma para que el usuario abortara la carga usando xhr.abort().Pyramid cómo manejar un xhr.abort()

El problema que tengo es que una vez que se cancela la carga, mi aplicación de pirámide continuará procesando la imagen, guardándola en el disco y agregando el registro a la base de datos.

¿Hay alguna manera de que mi vista sepa que el usuario llamó al xhr.abort() para que yo pueda limpiarlo?

Respuesta

1

Debería recibir un evento llamado 'abortar' en el objeto xhr. Si esto no funciona, debe iniciarse el cambio de estado de estado en cada situación.

Fuente: http://www.w3.org/TR/XMLHttpRequest/#the-abort-method

Editar: Cómo sobre el envío de una petición AJAX cuando el "onabort" fuegos -Evento? Entonces podrías deshacer tus cambios en el servidor. Para comprobar si el archivo llegó completo al servidor, puede obtener el tamaño del archivo en el lado del cliente y enviarlo al servidor (http://stackoverflow.com/a/5444716/725629).

+0

Esto explica cómo se supone que debe funcionar del lado del cliente. No estoy seguro de cómo ese mensaje llega al lado del servidor. – skrjon

+0

oh, lo siento, no había leído su pregunta exactamente ... por lo que desea saber cómo puede "capturar" una interrupción del servidor? – saegi