Очень просто Вот пример из моего кода. Может и кривовато, но работает. Тестировал на 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">