Na początek należy zadeklarować dwie zmienne, w request -domyślnie pustej tablicy- będą przechowywane referencje do obiektów XHR, a w flag -domyślnie o wartości true- wskazówka czy kolejne zapytania maja być wykonywane.
Zapytania będą wykonywane jeśli flaga będzie miała wartość true, a ich obiekty dodawane do do tablicy. Po wykonaniu zapytania obiekt zostanie usunięty z request.var
request = [],
flag = true;
if( flag === true )Jeśli użytkownik będzie chciał zmienić adres, przez zamknięciem strony flag zostanie ustawione na false, a we wszystkich nieusuniętych obiektach (niezakończonych zapytanich) zostanie wykonana metoda abort, kończące je.
{
var id = Math.random().toString( 36 );
request[ id ] = new XMLHttpRequest();
request[ id ].open( 'GET', 'test.txt', true );
request[ id ].onload = function()
{
delete request[ id ];
};
request[ id ].send( null );
}
window.onbeforeunload = function( e )Przygotowałem test do pobrania, musicie jednak jeszcze stworzyć i wypełnić plik test.txt zawartością, dostatecznie dużą aby zapytanie nie kończyło się zbyt szybko.
{
flag = false;
for( var id in request )
{
if( request.hasOwnProperty( id ) )
{
request[ id ].abort();
}
}
};
Brak komentarzy:
Prześlij komentarz