2012-03-21 5 views
7

Mam narzędzie do przesyłania obrazów, które po przesłaniu obrazu jest przetwarzane. Przesyłanie i przetwarzanie może potrwać dłużej niż 5 sekund w przypadku wolnego połączenia. Dodałem sposób, aby użytkownik przerwał przesyłanie przy użyciu xhr.abort().Piramida jak obsługiwać xhr.abort()

Problem jaki mam, to po usunięciu przesłania moja aplikacja piramidy będzie kontynuować przetwarzanie obrazu, zapisanie go na dysku i dodanie rekordu do bazy danych.

Czy istnieje sposób na mój pogląd, aby wiedzieć, że użytkownik o nazwie xhr.abort(), więc mogę posprzątać.

Odpowiedz

1

Powinieneś otrzymać zdarzenie o nazwie "Przerwij" na obiekcie xhr. Jeśli to nie działa, w każdej sytuacji należy odczytać plik Readys.

Źródło: http://www.w3.org/TR/XMLHttpRequest/#the-abort-method

Edit: Jak o wysłanie żądania AJAX, gdy "onabort" -event pożarów? Następnie możesz cofnąć zmiany na serwerze. Aby sprawdzić, czy plik został dostarczony kompletny na serwerze, można pobrać plik po stronie klienta i wysłać go na serwer (http://stackoverflow.com/a/5444716/725629).

+0

To wyjaśnia, jak to ma działać po stronie klienta. Nie jestem pewien, jak ta wiadomość pojawia się po stronie serwera. – skrjon

+0

Przepraszam, że nie przeczytałem dokładnie twojego pytania, więc chcesz wiedzieć, jak możesz "uchwycić" przerwane serwery? – saegi