BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 52 | UU: 3276

Pełna kontrola

AdvancedAJAX zawiera zestaw dodatkowych modyfikowalnych akcji, które pozwalają na pełną kontrolę nad procesem łączenia, pobierania danych czy ewentualnych błędów. Pierwszą parą są onInitialization i onFinalization, obydwie wykonywane tylko raz. onInitialization wykonywana jest przed tworzeniem obiektu XMLHttpRequest, natomiast onFinalization po wykonaniu wszystkich zdefiniowanych akcji, włączając w to ponawianie połączenia czy wystąpienie błędu.

advAJAX.get({
  url: "http://www.example.com/page.html",
  onInitialization : function() {
      /* Ukrycie warstwy */
      someDiv.style.visibility = "hidden";
  },
  onSuccess : function(obj) {
      /* Ustawienie nowej, pobranej z
         serwera wartości */
      someDiv.innerHTML = obj.responseText;
  },
  onError : function(obj) {
      /* W przypadku wystąpienia błędu 
         wyświetlenie komunikatu */
      alert("Error: " + obj.status);
  },
  onFinalization : function() {
      /* Ponowne pokazanie warstwy po 
      zakończeniu wszystkich operacji */
      someDiv.style.visibility = "visible";
  }
});

Proces łączenia i pobierania danych, w przypadku XMLHttpRequest, składa się z czterech części. Wykonywane są w tym przypadku, kolejno, metody onLoading, onLoaded, onInteractive oraz onComplete. Ważny w tym miejscu jest fakt, że onComplete wykonywane jest bez względu na to, czy dane zostały pobrane pomyślnie, czy też wystąpił błąd - wykonywana jest więc zawsze przed onSuccess i onError. Jedynym wyjątkiem jest Opera, przy której nie wywoływana jest metoda onLoaded.

advAJAX.get({
    url: "http://www.example.com/page.html",
    onLoading : function(obj)  {
      /* Wyświetlenie obrazka 
         wskazującego na ładowanie */
    },
    onComplete : function(obj) {
      /* Ukrycie obrazka... */
    },
    onSuccess : function(obj) { 
      /* Wyświetlenie pobranych danych */
    }
});

W przypadku wystąpienia błędu krytycznego (np. podczas tworzenia obiektu XMLHttpRequest czy otwierania połączenia z adresem w innej domenie czy nieznanym protokole) wykonywana jest metoda onFatalError. Jeśli to wystąpi, skrypt natychmiast kończy działanie, wywołując przedtem jedynie onFinalization.

Poniżej przedstawiono w trzech kolumnach przykładowe wywołania definiowalnych akcji. Pierwsza kolumna to przykład pomyślnego wykonania połączenia i pobranie danych, druga przy wystąpienia błędu 404 Not Found, a trzecia dla dwóch prób ponownego połączenia, ostatecznie zakończona porażką.

onInitialization      onInitialization      onInitialization
onLoading             onLoading             onLoading
onLoaded              onLoaded              onTimeout
onInteractive         onInteractive         onRetryDelay
onComplete            onComplete            onRetry
onSuccess             onError               onLoading
onFinalization        onFinalization        onTimeout
                                            onRetryDelay
                                            onRetry
                                            onLoading
                                            onTimeout
                                            onFinalization
Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker