AJAX XMLHttpRequest

Obiekt XMLHttpRequest czyni AJAX możliwym.

XMLHttpRequest

Obiekt XMLHttpRequest jest kluczowy dla AJAX.

Ten obiekt był już dostępny w Internet Explorer 5.5 i po jego wydaniu w lipcu 2000, ale przed rozpoczęciem dyskusji o AJAX i Web 2.0 w 2005 roku, obiekt ten nie był dobrze poznany.

Tworzenia obiektu XMLHttpRequest

Różne przeglądarki używają różnych metod do tworzenia XMLHttpRequest obiektu.

Internet Explorer używa ActiveXObject.

Inne przeglądarki używają nazwy XMLHttpRequest wbudowanego obiektu JavaScript.

Aby pokonać ten problem, można użyć tego prostego kodu:

var XMLHttp=null
if (window.XMLHttpRequest)
  {
  XMLHttp=new XMLHttpRequest()
  }
else if (window.ActiveXObject)
  {
  XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
  }

Wyjaśnienie kodu:

  1. Najpierw tworzy się obiekt używany jako XMLHttpRequest XMLHttp Zmienna. Ustaw jej wartość na null.
  2. Następnie testuje się window.XMLHttpRequest Czy obiekt jest dostępny. W nowszych wersjach przeglądarek Firefox, Mozilla, Opera oraz Safari, obiekt jest dostępny.
  3. Jeśli jest dostępny, to używa się go do utworzenia nowego obiektu:XMLHttp=new XMLHttpRequest()
  4. Jeśli jest niedostępny, to wykrywa się window.ActiveXObject Czy obiekt jest dostępny. W wersjach Internet Explorer 5.5 i wyższych, obiekt jest dostępny.
  5. Jeśli jest dostępny, użyj go do utworzenia nowego obiektu:XMLHttp=new ActiveXObject()

Ulepszone przykłady

Niektórzy programiści wolą używać najnowszej i najszybszej wersji obiektu XMLHttpRequest.

Poniższy przykład próbuje załadować najnowszą wersję "Msxml2.XMLHTTP", dostępną w Internet Explorer 6, jeśli nie można jej załadować, cofa się do "Microsoft.XMLHTTP", dostępnego w Internet Explorer 5.5 oraz jego późniejszych wersjach.

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 // Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

Wyjaśnienie kodu:

  1. Najpierw utwórz XMLHttp Zmienna. Ustaw jej wartość na null.
  2. Tworzenie obiektów zgodnie z standardem web (Mozilla, Opera oraz Safari):XMLHttp=new XMLHttpRequest()
  3. Tworzenie obiektów zgodnie z metodą Microsoft, dostępne w Internet Explorer 6 i wyższych wersjach:XMLHttp=new ActiveXObject("Msxml2.XMLHTTP")
  4. Jeśli złapiesz błąd, spróbuj starszej metody (Internet Explorer 5.5):XMLHttp=new ActiveXObject("Microsoft.XMLHTTP")

Więcej informacji o obiekcie XMLHttpRequest

Jeśli chcesz przeczytać więcej o XMLHttpRequest, odwiedź naszą Kurs AJAX.