Spisie treści
Kiedy zdecydujemy, że pójdziemy ścieżką pracy z Ajaks w HTML5Musimy mieć świadomość, że musimy radzić sobie z możliwymi błędami, które się pojawiają, w szczególności mamy dwa rodzaje błędów, które różnią się perspektywą.Pierwszy rodzaj błędu podany jest z punktu widzenia obiektu Żądanie XMLHttp i jest to jakaś sytuacja, która uniemożliwia wykonanie żądania, na przykład, że nazwa hosta nie jest rozwiązana w DNS, na przykład odrzucenie połączenia lub nieprawidłowy adres URL.
Drugi rodzaj błędu podawany jest z punktu widzenia naszej aplikacji, ale nie ma on nic wspólnego z obiektem Żądanie XMLHttp, to znaczy, że żądanie zostało wysłane, zostało zaakceptowane, przetworzone i wygenerowało odpowiedź, jednak odpowiedź nie była oczekiwaną treścią, np. jeśli podany przez nas URL nie istnieje.
Obsługa błędów konfiguracji
Zobaczmy, że pierwszym rodzajem błędu, który musimy obsłużyć, jest przekazanie niewłaściwych danych do obiektu Żądanie XMLHttp, coś w rodzaju źle sformułowanego adresu URL, chociaż brzmi to szaleńczo, jest to dość częsty błąd, gdy pracujemy z Ajaks.
Na przykład zobaczmy następujące wywołanie, które może prowadzić do tego błędu:
httpRequest.open ("GET", "http://");
Aby wystąpił problem tego typu, zwykle pojawia się on dlatego, że użytkownik jest proszony o wprowadzenie jakiejś wartości lub danych, z którymi mamy zamiar wygenerować URL a jak wiemy, użytkownik jest pierwszym słabym punktem programu i aby nie miało to na nas wpływu, musimy opracować sposoby walidacji i obsługi każdego rodzaju treści, które nam wysyła.
Aby sobie z tym poradzić, używamy bloku próbuj złapać co pozwala nam na wykonanie kodu i jeśli pojawi się problem, przechwytujemy błąd lub wyjątek i możemy nadać mu odpowiednią obsługę, w tym przykładzie pokazujemy błąd, jak widać w poniższym kodzie , które podsumowujemy i tylko pokazujemy części, które są interesujące w tym konkretnym punkcie:
spróbuj {… httpRequest.open ("GET", "http: //");… httpRequest.send (); } catch (error) {displayErrorMsg ("try / catch", error.message); }
Wewnątrz bloku łapać Mamy możliwość zapisania błędu, w tym celu możemy zażądać ponownego wprowadzenia danych, wysłać na stronę, na której wskazany jest błąd itp. Ważne jest, aby strona nie zawodziła, a proces niespodziewanie umierał dla użytkownika.
Obsługa błędów żądań
Ten błąd jest generowany, gdy wysyłamy żądanie, ale coś jest z nim nie tak, na przykład, że żądany adres URL nie jest rozpoznawany w DNS; Zobaczmy następujące wezwanie:
httpRequest.open („GET”, „http://a.nodomain/doc.html”);
W tym przypadku adres URL nie może zostać rozwiązany przez DNS, dodatkowo, ponieważ ma inne pochodzenie niż dokument, na który mógłby mieć wpływ również na nas, w celu zarządzania tego typu błędami korzystamy z funkcji, która pomaga nam nimi zarządzać, jak ten, który widzimy w tym przykładzie:
function handleError (e) {displayErrorMsg ("Zdarzenie błędu", httpRequest.status + httpRequest.statusText); }
Jedynym punktem, o którym musimy pamiętać, jest to, że przeglądarki nie obsługują informacji o obiektach httpZapytanie w ten sam sposób, więc odpowiedź może nie być taka sama.
Na tym kończymy samouczek i mamy już lepszą koncepcję obsługi i zarządzania błędami, które mogą wystąpić w żądaniu Ajaks i że mogą sprawić, że nasza strona zawiedzie.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt