Kod przepisałem z książki vademecum profesjonalisty wyd. IV i niestety nie działa.
Kod
function pobierzZadanieXMLHTTP() {
var zadanie = false;
try {
zadanie = new XMLHttpRequest();
} catch(blad) {
try {
zadanie = new ActiveXObject("Msxml2.XMLHTTP");
} catch(blad) {
try {
zadanie = new ActiveXObject("Microsoft.XMLHTTP");
} catch(blad) {
zadanie = false;
}
}
}
return zadanie;
}
function odczytajCzasSerwera() {
var strona = 'czasserwera.php';
liczbaLosowa = parseInt(Math.random()*99999999999999999);
var adresURL = strona +"?losowa="+liczbaLosowa;
mojeZadanie.onReadystatechange = odpowiedzHTTP;
mojeZadanie.open('GET', adresURL, true);
mojeZadanie.send(null);
}
function odpowiedzHTTP() {
if(mojeZadanie.readyState == 4) {
if(mojeZadanie.status == 200) {
var ciagCzasu = mojeZadanie.responseXML.getElementsByTagName("ciagczasu")[0];
document.getElementById('pokaz').innerHTML = ciagCzasu.childNodes[0].nodeValue;
}
} else {
document.getElementById('pokaz').innerHTML = 'loading..';
}
}
var zadanie = false;
try {
zadanie = new XMLHttpRequest();
} catch(blad) {
try {
zadanie = new ActiveXObject("Msxml2.XMLHTTP");
} catch(blad) {
try {
zadanie = new ActiveXObject("Microsoft.XMLHTTP");
} catch(blad) {
zadanie = false;
}
}
}
return zadanie;
}
function odczytajCzasSerwera() {
var strona = 'czasserwera.php';
liczbaLosowa = parseInt(Math.random()*99999999999999999);
var adresURL = strona +"?losowa="+liczbaLosowa;
mojeZadanie.onReadystatechange = odpowiedzHTTP;
mojeZadanie.open('GET', adresURL, true);
mojeZadanie.send(null);
}
function odpowiedzHTTP() {
if(mojeZadanie.readyState == 4) {
if(mojeZadanie.status == 200) {
var ciagCzasu = mojeZadanie.responseXML.getElementsByTagName("ciagczasu")[0];
document.getElementById('pokaz').innerHTML = ciagCzasu.childNodes[0].nodeValue;
}
} else {
document.getElementById('pokaz').innerHTML = 'loading..';
}
}
i przy moim divie
Kod
<div id="pokaz" class="ajax" onmouseover="java script:odczytajCzasSerwera();"></div>
Tak napisany kod nie działa. Pomyślałem że przy mojeZadanie.onReadystatechange = odpowiedzHTTP; powinienem dopisac nawiasy do odpowiedzHTTP i rzeczywiście coś się ruszyło. Jednakże czas serwera, czyli poprawna zawartość pokazuje się dopiero za drugim najechaniem myszki. Dodatkowo przeczytałem w jakimś kursie że powinno być jednak bez (). Jak to w końcu jest? Proszę o wyjaśnienie.