Web Analytics

See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
XMLHTTP - Wikipedia, wolna encyklopedia

XMLHTTP

Z Wikipedii

XMLHttpRequest (XHR) jest zbiorem programistycznych interfejsów aplikacyjnych, które mogą być używane przez JavaScript, JScript, VBScript oraz inne języki skryptowe przeglądarek internetowych do przekazywania XML lub innych danych do oraz z serwera internetowego używając protokołu HTTP.

Największą zaletą XMLHttpRequest jest możliwość dynamicznej aktualizacji strony internetowej bez potrzeby odświeżania całości strony lub użycia wtyczek programowych. XMLHTTP jest używany przez wiele witryn internetowych do implementacji czułych oraz dynamicznych aplikacji webowych. Przykłady aplikacji XMLHTTP zawierają serwis Google Gmail, Google Maps, Windows Live Local oraz interfejs dynamicznych podpowiedzi Google Suggest.

XMLHttpRequest jest ważnym komponentem w technice budowy stron internetowych zwanej "AJAX".

Poza XML, XMLHttpRequest może być używany do przenoszenia danych w innych formatach, np. HTML, JSON lub prostym tekstem.

Spis treści

[edytuj] Metody

Metoda Opis
abort() Anuluje aktualne żądanie.
getAllResponseHeaders() Zwraca kompletny zestaw nagłówków HTTP jako łańcuch znaków.
getResponseHeader( headerName ) Zwraca wartość konkretnego nagłówka HTTP.
open( metoda, URL )
open( metoda, URL, async )
open( metoda, URL, async, userName )
open( metoda, URL, async, userName, password )
Określa metodę, URL i inne opcjonalne argumenty żądania.

Argument metoda może mieć wartość "GET", "POST", "HEAD", "PUT", "DELETE" lub inne metody HTTP wypisane w specyfikacji W3C.[1]

Argument URL może być zarówno relatywnym lub bezwzględnym adresem.

Argument "async" określa czy żądanie powinno być przetwarzane asynchronicznie lub nie – dla 1 ("true") skrypt będzie dalej przetwarzany po wykonaniu metody send(), a dla 0 ("false") skrypt będzie przetwarzany dopiero po otrzymaniu odpowiedzi.

send( zawartość ) Wysyła żądanie.
setRequestHeader( nazwaNagłówka, zawartośćNagłówka ) Dodaje parę nagłówek/zawartość do żądań HTTP.

[edytuj] Właśności

Własność Opis
onreadystatechange Określa referencje do funkcji wykonywanej przy każdej zmianie własności readyState.
readyState Zawiera stan obiektu jak następuje:
  • 0 = zapytania niezainicjalizowane
  • 1 = cel otwarty
  • 2 = zapytanie wysłane
  • 3 = odbieranie odpowiedzi
  • 4 = żądanie zakończone
responseText Zawiera odpowiedź (łańcuch znaków).
responseXML Zawiera odpowiedź jako XML. Ta własność zwraca obiekt dokumentu XML, który może być parsowany używając klas i interfejsów W3C DOM.
status Zawiera kod odpowiedzi HTTP jako numer (np. 404 dla "Not Found" lub 200 dla "OK").
statusText Zawiera status jako ciąg znaków (np. "Not Found" lub "OK").

[edytuj] Historia i wsparcie przeglądarek

XMLHttpRequest było pierwotnie stworzone przez Microsoft jako część usługi OWA (Outlook Web Access) 2000. Implementacja Microsoftu nazywa się XMLHTTP. Jest dostępna w Internet Explorerze poczynając od wersji 5.0[2] i jest dostępny poprzez JScript, VBScript i inne języki skryptowe obsługiwane przez IE.

Pierwsza natywna implentacja XMLHttpRequest została włączona przez Mozillę do Mozilla Application Suite 1.0 w 2002 roku. Ta implentacja była potem obsługiwana przez Apple w Safari 1.2, Konqueror, Opera Software od Opery 8.0 i iCab od wersji 3.0b352.

Konsorcjum World Wide Web opublikowała szkic (Working Draft) specyfikacji obiektu XMLHttpRequest 5 Kwietnia 2006 roku[1]. Podczas kiedy jest ona ciągle opracowywana, jej celem jest dokumentować minimalny zestaw wspólnych cech istniejących implementacji, umożliwiając tworzenie kodu bez oddzielnych bloków tekstu dla różnych platform. Szkicowa specyfikacja jest bazowana na implementacjach popularnych przeglądarek, aby zapewnić przenośność kodu.

Strony wykorzystujące XMLHttpRequest lub XMLHTTP wykorzystują objekt XMLHttpRequest bezpośrednio w JavaScripcie lub korzystając z gotowych bibliotek konstrukcyjnych (frameworków).

Są również inne metody, które osiągają te same efekty:

  • Niewidzialny IFrame ( korzystając z własności obiektów javascriptu location.href oraz innerHTML )
  • Netscape LiveConnect
  • Microsoft ActiveX
  • Microsoft XML Data Islands
  • Macromedia Flash Player
  • Applety Java

[edytuj] Znane problemy

[edytuj] Pamięc podręczna Microsoft Internet Explorera

IE implementuje pamięć podręczna dla zapytań typu GET. Autorzy, którzy nie znają zachowań IE, oczekują że zapytania GET będą odświeżane za każdym razem tak samo jak po odświeżeniu strony. W niektórych sytuacjach może to spowodować błędy na stronie. Najprostszym rozwiązaniem jest stosowanie zapytań typu POST.

Możemy również ustawić nagłówek "Expires" na datę w przeszłości, dzięki czemu unikniemy zapisania strony w pamięci podręcznej. Przykład zastosowania w PHP:

header( "Expires: Mon, 26 Jul 1997 05:00:00 GMT" );  // sprawia, że IE nie zapisze tej strony
header( "Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . " GMT" ); 
header( "Cache-Control: no-cache, must-revalidate" ); 
header( "Pragma: no-cache" );

To samo można osiągnąć używając Java Servlet:

response.setHeader( "Pragma", "no-cache" );
response.addHeader( "Cache-Control", "must-revalidate" );
response.addHeader( "Cache-Control", "no-cache" );
response.addHeader( "Cache-Control", "no-store" );
response.setDateHeader("Expires", 0);

Alternatywnie można również określić w obiekcie XMLHttpRequest aby pobierał zawartość pomimo zapisanej wersji w pamięci podręcznej, tak jak pokazano w poniższym przykładzie:

req.open( "GET", "xmlprovider.php" );
req.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
req.send( null );

Kolejnym rozwiązaniem jest używanie losowego ciągu znaków na końcu zapytania:

req.open( "GET", "xmlprovider.php?sid=" + Math.random());

Zapewni to pobranie aktualnej zawartości.

Należy pamiętać, że te techniki powinny być wykorzystywane tylko jeżeli występują problemy. Zamiast wysyłać niepoprawne nagłówki lepiej jest informować użytkownika, że nowe dane mogą być aktualnie dostępne.

[edytuj] Ponowne używanie obiektów XMLHttpRequest w IE

[edytuj] Wsparcie przeglądarek

Microsoft był pierwszy w włączeniu obiektu XMLHTTP w ich kontolce ActiveX MSXML. Deweloperzy Mozilli stworzyli własny XMLHttp, ale już jako natywny obiekt przeglądarki nazywający się XMLHttpRequest. Opera i Safari mają zaimplementowaną podobną funkcjonalność, ale bardziej podobną do XMLHttpRequest Mozilli. Część bibliotek konstrukcyjnych (frameworków) wspiera tylko jedną z implementacji, a inne oba. Internet Explorer 7 wspiera obiekt XMLHttpRequest, zachowując kompatybilność z poprzednią implementacją.[2]

[edytuj] Biblioteki szkieletowe (frameworki)

Powstało wiele bibliotek szkieletowych, które wspierają wszystkie implementacje XMLHttpRequest. Patrz też: AJAX.

[edytuj] Przypisy

[edytuj] Zobacz też

[edytuj] Zewnętrzne linki

[edytuj] Dokumentacje implementacji

[edytuj] Angielskojęzyczne poradniki

[edytuj] Bezpieczeństwo

  • "Attacking AJAX Applications", prezentacja z konferencji Black Hat. Opisuje kilka tematów dotyczących XMLHttpRequest oraz przyszłość AJAXa działającego na różnych domenach.

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu