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: 53 | UU: 3272

Ponawianie połączenia

AdvancedAJAX posiada również mechanizmy odpowiedzialne za ponawianie połączenia w przypadku wystąpienia błędu. Dodanie tego jest niezwykle proste. Podczas przekazywania parametrów AdvancedAJAX należy utworzyć wartość dla pola retry, które określa liczbę prób ponownego połączenia. Możliwe, aczkolwiek opcjonalne, jest podanie wartości dla pola retryDelay, które określa liczbę milisekund pomiędzy próbami połączenia. Domyślną dla tego pola wartością jest 1000, czyli 1 sekunda. W przypadku wystąpienia błędu, przed próbą ponownego połączenia wywoływana jest metoda OnRetry, którą również możemy zmodyfikować. Przed zatrzymaniem działania skryptu na liczbę milisekund określoną w parametrze retryDelay wykonywana jest metoda onRetryDelay. Należy jednak pamiętać, że ponawianie połączenia następuje wyłączenie podczas przekroczonego czasu łączenia poprzedniej próby, a nie w przypadku wystąpienia przykładowo błędu 404 Not Found. Maksymalny czas łączenia definiujemy za pomocą parametru timeout, który winien zawierać liczbę milisekund. Po przekroczeniu czasu łączenia wywoływana jest metoda onTimeout, oczywiście przed onRetry.

advAJAX.get({
  url: "http://www.example.com/page.html",
  timeout : 3000,
  onTimeout : function() {
    alert("Connection timed out.");
  },
  retry: 2,
  retryDelay: 2000,
  onRetry : function() {
    alert("Retry connection...");
  },
  onRetryDelay : function() {
    alert("Awaiting retry...");
  },
  onSuccess : function(obj) {
    alert(obj.responseText);
  },
  onError : function(obj) {
      alert("Error: " + obj.status);
  }
});

Wykonanie powyższego kodu spowoduje ponownienie próby połączenia dwukrotnie (czyli w sumie skrypt będzie się łączyć maksymalnie trzy razy) w przypadku wystąpienia błędu. Odstępy pomiędzy próbami wynosić będą dwie sekundy, a pomiędzy połączeniami wykonane zostaną, w kolejności, metody onRetryDelay oraz onRetry. Maksymalny czas łączenia został tutaj ustawiony na trzy sekundy, a w przypadku jego przekroczenia, przed ponowną próbą, zostanie wywołana metoda onTimeout. Aby sprawdzić, czy wystąpiło przedawnienie łączenia bez wykorzystania onTimeout, wystarczy odwołać się do zmiennej .aborted, która w tym wypadku będzie miała wartość true.

Copyright © 2006-2011 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker