AJAX
Níže je uveden pouze náhled materiálu. Kliknutím na tlačítko 'Stáhnout soubor' stáhnete kompletní formátovaný materiál ve formátu PDF.
try {
xmlhttp
= new XMLHttpRequest();
} catch (e) {
xmlhttp
=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp
= window.createRequest();
} catch (e) {
xmlhttp
=false;
}
}
Implementace
Implementace - použití
použit
function vyrobDotaz() {
xmlhttp.open
("GET", "ajax_hodiny_server.php",true);
xmlhttp.onreadystatechange
=function() {
if (xmlhttp.readyState==4) {
vypisHodiny
(xmlhttp.responseText);
}
}xmlhttp.send
(null)
}
function vypisHodiny(hodiny_string) {
document.getElementById
("div_hodiny").innerHTML += "<br/>" +
hodiny_string;
Javascript na klientovi
Handler události
Obsluha události
odpovědi serveru
hodiny_string;
}
<?phpheader("Expires: Wed, 23 Dec 1980 00:30:00 GMT");
header("Last-Modified:".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
echo date("H:i:s");
?>
ajax_hodiny_server.php
Formát dat
Formát da
Formát není definován
Formát není definová
Je třeba sjednotit klientskou a serverovou stranu
Je třeba sjednotit klientskou a serverovou stran
Klient a server tedy není univerzální
Klient a server tedy není univerzáln
Obvykle se používají např.:
Obvykle se používají např.
– pole oddělená čárkou
pole oddělená čárko
– serializovaný
serializovan Javascript
Javascrip (JSON)
(JSON
– nějaká XML formát
nějaká XML formá
– SOAP
SOA
– pole s pevnou velikostí (např. 20 byte)
pole s pevnou velikostí (např. 20 byte
Nebezpečí
Nebezpečí AJAXu
AJAX
Asynchronní způsob aktualizace stránky
Asynchronní způsob aktualizace stránk
– Není zaručeno, za jak dlouhou dobu server odpoví
Není zaručeno, za jak dlouhou dobu server odpov
– Události NESMÍ mít závislosti
Události NESMÍ mít závislosti – možnost
možnost deadlocku
deadlock nebo
nebo
nečekaného chování
nečekaného chován
Příklad asynchronního problému
Příklad asynchronního problém
– async
asyn _login
logi _request
reques (data)
(data
get_account_state
předběhl login
– async
asyn _get
ge _account
accoun _state
stat _request