All pastes #948789 Raw Edit

Mine

public text v1 · immutable
·published 2008-03-19 13:00 UTC
rendered paste body
var req = false;
var lines = array();
var logUlElement = false;
var logElement = false;
var maxLines = 100;

if (window.XMLHttpRequest){
	req = new XMLHttpRequest();
	if (req.overrideMimeType) {
		req.overrideMimeType('text/xml')
	}
} else if (window.ActiveXObject) {
	try {
		req=new ActiveXObject("Msxml2.XMLHTTP");
	} 
	catch (e){
		try{
			req=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch (e){}
	}
}

req.onreadystatechange = function() {
	if(req.readyState == 4) {
		if(req.status == 200) {
			var linesFromXml;
			if (logUlElement === false)
			{
			    logUlElement = document.createElement('ul');
			    logUlElement.setAttibute('id', 'log');
			    logElement.appendChild(logUlElement);
			}
			linesFromXml = req.responseXML.getElementsByTagName('Lines');
			for(var i = 0; i < linesFromXml.length; ++i) {
				var line = linesFromXml[i];
				var lineLi = document.createElement('li');
				var lineNumberSpan = document.createElement('span');
				var lineSpan = document.createElement('span');
				var lineNum = line.getAttribute('number') * 1;
				lineNumberSpan.appendChild( document.createTextNode( lineNum + ': ' ) );
				lineSpan.appendChild( document.createTextNode( line.childNodes[0].nodeValue ) );
				if ( lineNum/2 == Math.round( lineNum/2 ) )
				{
				    even = 'even';
				}
				else
				{
				    even = 'uneven';
				}
				lineLi.setAttribute('class', even);
				lineLi.appendChild(lineNumberSpan);
				lineLi.appendChild(lineSpan);
				lines[lineNum] = lineLi;

				logUlElement.appendChild(lines[lineNum]);

				if (lineNum > maxLines)
				{
				    logUlElement.removeChild(lines[lineNum - maxLines]);
				}
			}
		} else {
			alert('Error ' + req.status);
		}
	}
}


function fillLog(newLogElement)
{
    logElement = newLogElement
    setInterval(
	function ()
	{
	    req.abort();
	    fillLog(logElement);
	},
	1 * 1000
    )
    req.open('GET', '/path/to/log.xml.php');
    req.send('');
}