а теперь при помощи такого кода
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
window.onload = function() {
document.getElementsByTagName('a')[0].onclick = function() {
getXml();
return false;
};
};
function getHtml() {
ajax( '37.html', function( req ) {
document.getElementsByTagName('div')[0].innerHTML = req.responseText;
});
}
function getXml() {
ajax( '34.xml', function( req ) {
getXml.xml = req.responseXML;
ajax( '35.xsl', getXsl );
});
}
function getXsl( req ) {
if (window.ActiveXObject) {
try {
var r = getXml.xml.transformNode( req.responseXML );
} catch(e) {}
} else {
var xslt = new XSLTProcessor();
var serializer = new XMLSerializer();
try {
xslt.importStylesheet( req.responseXML );
var r = serializer.serializeToString(
xslt.transformToFragment(getXml.xml, document) );
} catch(e) {}
}
document.getElementsByTagName('div')[0].innerHTML = r;
}
function getXmlHttp(){
var xmlhttp;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function ajax( url, callback ) {
var xmlhttp = getXmlHttp()
xmlhttp.open('GET', url+'?'+Math.random(), true);
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if(xmlhttp.status == 200) {
callback( xmlhttp );
}
}
};
xmlhttp.send(null);
}
</script>
</head>
<body>
<a href="#">link</a>
<div></div>
</body>
</html>
убеждаемся, что
xml/xslt - 11ms (код) + 5ms(xml) + 4ms (xsl)
html - 6ms (код) + 5ms(html)
может будут замечания по методике тестирования?