Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
|
кстати, ты знаешь, что microsoft входит в w3c
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
ну вот берем с твоего сайта
xml (1169 байт)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<window xsl="cheats" css="cheats">
<content>
<text caption="Коды">
<p>Text text text <b>text</b> text <i>text text text</i></p>
</text>
<cheats>
<cheat type="var" use="server" setinfo="0" autoexec="1" defvalue="800" values="number">sv_gravity
</cheat>
<cheat type="cmd" use="server" setinfo="0" autoexec="0" defvalue="0" values="0-infinity">sv_restart
</cheat>
</cheats>
<text caption="sv_gravity">
<p>Text text text <b>text</b> text <i>text text text</i></p>
</text>
<cheats>
<cheat type="var" use="server" setinfo="0" autoexec="1" defvalue="800" values="number">sv_gravity
</cheat>
<cheat type="cmd" use="all" setinfo="0" autoexec="0" defvalue="0" values="0-infinity">sv_restart<
/cheat>
</cheats>
<text caption="sv_restart">
<p>Текст text text text <b><i>text text</i></b> text <a href="http://www.google.ru">text text</a>
text</p>
</text>
</content>
</window>
xsl (1456 байт)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" encoding="UTF-8" omit-xml-declaration="yes" indent="yes" media-type="screen"
/>
<xsl:template match="cheats">
<div class="table">
<table border="0" cellpadding="0" cellspacing="0">
<tr class="tr_caption"><td>Cheat</td><td>Type</td><td>Use</td><td>Setinfo</td><td>Autoexec</td><td
>Def value</td><td>Values</td></tr>
<xsl:for-each select="cheat">
<tr>
<td><strong><xsl:value-of select="."/></strong></td>
<td><xsl:value-of select="@type"/></td>
<td><xsl:value-of select="@use"/></td>
<td><xsl:value-of select="@setinfo"/></td>
<td><xsl:value-of select="@autoexec"/></td>
<td><xsl:value-of select="@defvalue"/></td>
<td><xsl:value-of select="@values"/></td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template match="text">
<xsl:for-each select=".">
<h3><xsl:value-of select="@caption"/></h3>
<div class="text"><xsl:copy-of select="node()|@*"/></div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
innerHTML (1653 байт)
<h3>Коды</h3>
<div class="text" caption="Коды">
<p>Text text text <b>text</b> text <i>text text text</i>
</div>
<div class="table">
<table border="0" cellpadding="0" cellspacing="0">
<tr class="tr_caption">
<td>Cheat
<td>Type
<td>Use
<td>Setinfo
<td>Autoexec
<td>Def value
<td>Values
</tr>
<tr>
<td><strong>sv_gravity</strong>
<td>var
<td>server
<td>0
<td>1
<td>800
<td>number
</tr>
<tr>
<td><strong>sv_restart</strong>
<td>cmd
<td>server
<td>0
<td>0
<td>0
<td>0-infinity
</tr>
</table>
</div>
<h3>sv_gravity</h3>
<div class="text" caption="sv_gravity">
<p>Text text text <b>text</b> text <i>text text text</i>
</div>
<div class="table">
<table border="0" cellpadding="0" cellspacing="0">
<tr class="tr_caption">
<td>Cheat
<td>Type
<td>Use
<td>Setinfo
<td>Autoexec
<td>Def value
<td>Values
</tr>
<tr>
<td><strong>sv_gravity</strong>
<td>var
<td>server
<td>0
<td>1
<td>800
<td>number
</tr>
<tr>
<td><strong>sv_restart</strong>
<td>cmd
<td>all
<td>0
<td>0
<td>0
<td>0-infinity
</tr>
</table>
</div>
<h3>sv_restart</h3>
<div class="text" caption="sv_restart">
<p>Текст text text text <b><i>text text</i></b> text <a href="http://www.google.ru">text text</a> text
</div>
пока что html выигрывает. Замечания? |
а теперь при помощи такого кода
<!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) может будут замечания по методике тестирования? |
Цитата:
<cheats>
<cheat type="var" use="server" setinfo="0" autoexec="1" defvalue="800" values="number">sv_gravity
</cheat>
<cheat type="cmd" use="all" setinfo="0" autoexec="0" defvalue="0" values="0-infinity">sv_restart<
/cheat>
</cheats>
<text caption="sv_restart">
<p>Текст text text text <b><i>text text</i></b> text <a href="http://www.google.ru">text text</a>
text</p>
</text>
и выигрыш будет очевиден. |
+если у нас будт больше узлов cheat, то выигрыш будет расти быстрее... Для простых xml, xsl будет и меньше. Потом, для многих xml используется одни xsl из кэша - ещё выигрыш...
|
Цитата:
|
| Часовой пояс GMT +3, время: 16:51. |