Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak przerwac zapytanie
Forum PHP.pl > Forum > XML, AJAX > AJAX
lukaskolista
Witam. Istnieje sposob na przerwanie trwajacego zapytania AJAX? Potrzebuje taka funkcjonalnosc. Z gory dziekuje za pomoc smile.gif
kamil4u
Opisz dokładniej. W chwili, gdy wysyłasz zapytanie przez AJAX-a nic już nie możesz zrobić - zapytanie jest wysyłane do serwera, a następnie odp. zwracana przeglądarce, a czy Ty chcesz odczytać te dane czy nie to już Twoja sprawa. Tak więc opisz, w którym momencie chcesz przerwać skrypt i po co.
Crozin
Obiekt XHT ma metodę abort(), która przerywa żądanie. Dodatkowo możesz ustawić timeout, który przerwie żądanie po upłynięciu X sekund.
kamil4u
A no racja - zapomniałem sad.gif A w jakich przypadkach praktycznych warto z tej metody skorzystać?
Crozin
Hmmm... w praktycznie każdym? Nie ma nic bardziej irytującego niż tak napisany kod by działał jedynie w momencie, gdy żądanie się wykona. Zawsze powinno być zrobione to tak by w przypadku, gdy żądanie nie może się wykonać użytkownik miał jakąś możliwość reakcji.
kamil4u
Cytat
gdy żądanie nie może się wykonać

Tzn. kiedy nie może się wykonać? Osobiście pisałem w Ajaksie bardzo proste skrypty, więc niestety nie zaznałem takiej potrzeby. Poza tym korzystamy z http_request.readyState i http_request.status i na ich podstawie można stwierdzić czy coś poszło nie tak. Szczerze mam chyba tak małe doświadczenie z tym, że tego nie rozumiem. Możesz podać jakiś konkretniejszy przykład?
Crozin
Cytat
Tzn. kiedy nie może się wykonać?
Na przykład gdy padnie Ci net. AJAX w pewnym sensie działa jak otworzenie nowej karty w przeglądarce i wklepanie w niej jakiegoś adresu. Przeglądarka spróbuje wczytać dane. Najpierw połączy się z serwerem (już na tym etapie wszystko może skończyć się porażką), a następnie pobierze z niego odpowiednie dane. Samo pobieranie danych też może trochę trwać.

Przez cały ten czas przeglądarka udostępnia Ci taki przycisk (teraz chyba każda przeglądarka wyświetla go na przemian z "Przeładuj") o nazwie "Zatrzymaj", który zatrzymuje cały proces - to taki odpowiednik XHR-owej metody abort.
lukaskolista
dzieki, timeout przyda sie bardziej, niz abort smile.gif wiesz, jak mozna przerwac rzadanie w jQuery w funkcji get?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.