AJAX 2.díl

Napsal O webu (») 22. 8. 2007 v kategorii PHP/HTML, přečteno: 1524×
obrazky/ajax_logo.pngDnes si ukážeme využití několika základních postupů v AJAXu

Na zasílání požadavků přes HTTP protokol je v javascriptu objekt XMLHttpRequest. Ten nejdříve musíme vytvořit. Normálně by se to provedlo takto:
http_request = new XMLHttpRequest();

Ale už tady se setkáme s problémem různé implementace v prohlížečích, protože v IE se tento objekt vytváří jako activeX a navíc ještě dvou typů. Naštěstí pro nás, jde tato „chyba“ jednoduše ošetřit, někteří PHP programátoři zajisté budou vědět co znamená try, catch:

Tedy je nutné použít poněkud upravený skript

if (window.XMLHttpRequest) {
http_request = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (eror) {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
}


Tímto máme vyřešené vytváření objektu. Před samotným požadavkem, musíme nastavit funkci, která jej zpracuje. Funkce se vkládá do proměnné onreadystatechange.
http_request.onreadystatechange = function() { nazevfunkce(http_request); };

OPEN

Teď se budeme věnovat funkci open(), která nám vytváří spojení s požadovaným scriptem. Funkce má dva povinné, a tři nepovinné parametry. První parametr je typ požadavku (GET/POST), do druhého povinného parametru patří url, kterou chceme volat. Url může být relativní nebo absolutní, ale z důvodů bezpečnosti není možno volat url na jiné dómeně. Třetí nepovinný parametr je typu boolean, pomocí něj nastavujeme jak budou data poslána. Defaultně je nastavený na true což znamená, že režim přenosu bude asynchronní (prohlížeč nebude čekat na výsledky). Pokud jej však nastavíme na false, znamená to, že režim přenosu bude synchronní, a prohlížeč při požadavku počka na výsledky (zamrzne). Takže asi víte, že je lepší ponechat defaultně nastavenou hodnotu. Poslední dva parametry, jsou jmého a heslo při přistupu na zabezpečenou adresu. ale to asi nemá moc využití.

SEND

Druhou funkcí je send(). Tato funkce má jeden parametr, který se liší podle typu požadavku. Při požadavku GET dáváme proměnné přímo do url ve tvaru script.php?promnena=pokus&promena=pokus, proto do parametru send dáváme pouze null. U požadavku typu POST se proměnné nedávájí do URL, ale předávíji se funkci send() ve tvaru promnena=pokus&promena=pokus. U typu POST je dobré ještě před voláním send() nastavit správný Content-Type, provedeme to jednoduše:
http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');

Tolik pro dnešek, příště si rozebereme, POST a GET a poté si napíšeme jednoduchý AJAXový skriptík.
Autor: Filip Koval
Štítky: ajax
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel nula a deset