Показать сообщение отдельно
  #167 (permalink)  
Старый 23.06.2009, 20:18
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

а теперь при помощи такого кода
<!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)
может будут замечания по методике тестирования?
Ответить с цитированием