Today's current temperature is: ???
The source code for this tiny, contrived example on the client:
var requester = null;
var uri = "http://www.fincher.org/tips/web/Ajax/Test.php";
//overall method to get current temperature
function showTemp() {
requester = getRequester();
requester.onreadystatechange = ajaxHandler;
requester.open("GET", uri);
requester.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT"); //don't cache
requester.send(null);
}
//return an XHR object from any browser
function getRequester() {
//if(requester != null) { return requester; }
try {
requester = new XMLHttpRequest(); //try Opera, Firefox, IE7...
} catch (error) {
try {
requester = new ActiveXObject("Microsoft.XMLHTTP"); //IE 6 and less
} catch (error) {
return null;
}
}
return requester;
}
//call back method
function ajaxHandler() {
if (requester.readyState == 4) { //wait til call is finished
if (requester.status == 200) { //make sure its a good response
//document.getElementById("temperature").innerHTML = requester.responseText;
setTextField(requester.responseText);
} else {
alert("Could not connect to server.");
}
} else {
setTextField(".................requester.readyState:"+requester.readyState);
}
return true;
}
function setTextField(mytext) {
document.getElementById("temperature").innerHTML = mytext;
}
The php code on the server:
<?php
//don't you dare cache on me
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("content-type:text/xml");
sleep(1);
srand((double)microtime()*1000000);
print (rand(60,105));
?>