23.06.2009, 17:56
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от B~Vladi
|
хоть что-то они САМИ придумали
|
Они много чего придумали. IE6 (да и 5-й тоже) опережал свое время на годы. Если бы они его не забросили, не известно, какая бы сейчас ситуация была в линейке браузеров.
|
|
23.06.2009, 18:35
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Цитата:
|
Работает быстро...
|
по сравнению с чем? Почему-то я уверен, что ты ничего не мерял
Цитата:
|
И код и шаблон разные, но кода больше нада...
|
компактный xml/xslt в студию
Цитата:
|
В случае с моим сайтом, innerHTML никак не канает... так что это нада там, где ну очень много кода есть готового... тогда да... и работает быстрее...
|
почему не канает? На данный момент, думаю, у тебя вообще можно прямо на сервере html отдавать. Разве что если ты какие-нибудь стили (>1) навороченные придумаешь
Цитата:
|
Кста, при правильном использовании XSL может сильно уменьшить трафик..
|
по сравнению с неправильным использованием js? Может быть. Во-первых, за счет чего? Во-вторых, можно пример?
|
|
23.06.2009, 18:38
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
кстати, ты знаешь, что microsoft входит в w3c
Последний раз редактировалось x-yuri, 23.06.2009 в 18:42.
|
|
23.06.2009, 18:54
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от Kolyaj
|
IE6 (да и 5-й тоже) опережал свое время на годы
|
Бред, даже обсуждать не хочу...
Сообщение от x-yuri
|
по сравнению с чем? Почему-то я уверен, что ты ничего не мерял
|
Что мерить?! Что сравнивать?! XSLT процессоры уже давно измерены и сравнины...
Сообщение от x-yuri
|
компактный xml/xslt в студию
|
Если хочешь сравнить, сам напиши xml и несколько xsl, а потом JS-парсинг и посмотри.
Сообщение от x-yuri
|
На данный момент, думаю, у тебя вообще можно прямо на сервере html отдавать.
|
Неправильно думаешь. У меня НИКАК нельзя HTML отдавать.
Сообщение от x-yuri
|
по сравнению с неправильным использованием js? Может быть. Во-первых, за счет чего? Во-вторых, можно пример?
|
По сравнению с передачей HTML. Причём тут JS? мы говорим о передаваемых данных. За счёт XSL. Пример на сайте.
|
|
23.06.2009, 19:10
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Цитата:
|
Они много чего придумали. IE6 (да и 5-й тоже) опережал свое время на годы. Если бы они его не забросили, не известно, какая бы сейчас ситуация была в линейке браузеров.
|
Цитата:
|
Бред, даже обсуждать не хочу...
|
видели, кстати, такое
Цитата:
|
Что мерить?! Что сравнивать?! XSLT процессоры уже давно измерены и сравнины...
|
и все что я про них слышал: что они тормозят (правда я в основном про php слышал, но...)
Цитата:
|
Если хочешь сравнить, сам напиши xml и несколько xsl, а потом JS-парсинг и посмотри
|
а при чем тут js-парсинг? js-парсинг - это извращение, на клиентской стороне есть другие нормальные способы
Цитата:
|
Неправильно думаешь. У меня НИКАК нельзя HTML отдавать
|
причина?
Цитата:
|
По сравнению с передачей HTML. Причём тут JS? мы говорим о передаваемых данных. За счёт XSL. Пример на сайте
|
а выше ты js-парсинг упоминал
это все объясняет
|
|
23.06.2009, 19:33
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
ну вот берем с твоего сайта
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 выигрывает. Замечания?
|
|
23.06.2009, 20:18
|
|
|
|
Регистрация: 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)
может будут замечания по методике тестирования?
|
|
24.06.2009, 09:54
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от x-yuri
|
пока что 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>
и выигрыш будет очевиден.
|
|
24.06.2009, 09:57
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
+если у нас будт больше узлов cheat, то выигрыш будет расти быстрее... Для простых xml, xsl будет и меньше. Потом, для многих xml используется одни xsl из кэша - ещё выигрыш...
|
|
24.06.2009, 09:58
|
|
Модератор Всея Форума
|
|
Регистрация: 14.05.2009
Сообщений: 4,021
|
|
Сообщение от x-yuri
|
innerHTML (1653 байт)
|
А это без закрывающихся <td>???
|
|
|
|