Очень просто Вот пример из моего кода. Может и кривовато, но работает. Тестировал на IE6, Firefox, Chrome.
ajax.js:
ส็็็็็็็็็็็็็็็็็็็็็็็็็༼ ຈل͜ຈ༽ส้้้้้้้้้้้้้้้้้้้้้้้
window.onload = init;
var xmlhttp, linkTimeout = 0;
function init()
{
if (xmlhttp)
{
xmlhttp.abort();
}
if (window.XMLHttpRequest)
{
try
{
xmlhttp = new XMLHttpRequest();
}
catch (e) {}
}
else if (window.ActiveXObject)
{
try
{
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch (e)
{
try
{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
catch (e) {}
}
}
if (xmlhttp)
{
xmlhttp.onreadystatechange=onLoad;
setTimeout("sendRequest()", 2000);
}
}
function sendRequest()
{
xmlhttp.open("GET", "/data.xml", true);
xmlhttp.send(null);
}
function onLoad()
{
if (xmlhttp.readyState == 4) // 4 = "loaded"
{
if (xmlhttp.status == 200) // 200 = OK
{
iterateAll();
}
init();
}
}
function iterateAll()
{
var nodes = xmlhttp.responseXML.documentElement.childNodes;
clearTimeout(linkTimeout);
for (var i = 0; i < nodes.length; i++)
{
for (var item = nodes.item(i).firstChild; item; item = item.nextSibling)
{
var target = document.getElementById(item.nodeName);
if (target)
{
if (item.parentNode.nodeName == "values")
{
if (target.firstChild)
{
target.firstChild.nodeValue = item.firstChild.nodeValue;
}
}
else if (item.parentNode.nodeName == "images")
{
target.src = item.firstChild.nodeValue;
}
}
}
}
linkTimeout = setTimeout("linkDown()", 5000);
}
function linkDown()
{
var target = document.getElementById("link");
if (target)
{
target.src = "red.gif";
}
}
data.xml:
<root> <values> <mode><%cgi?mode%></mode> <temp><%cgi?temp%></temp> <uptime><%cgi?uptime%></uptime> <oph><%cgi?oph%></oph> </values> <images> <los><%cgi?los%></los> <link>green.gif</link> </images> </root>В коде HTML прыгающие цифры обрамляем так: <span id="my_id">цифры</span>. Картинки можно так: <img alt="LED" id="my_id" src="/abc/def.gif">