Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Идея сайта... Стоит двигацца дальше?! (https://javascript.ru/forum/project/3686-ideya-sajjta-stoit-dvigacca-dalshe.html)

Kolyaj 23.06.2009 17:56

Цитата:

Сообщение от B~Vladi
хоть что-то они САМИ придумали

Они много чего придумали. IE6 (да и 5-й тоже) опережал свое время на годы. Если бы они его не забросили, не известно, какая бы сейчас ситуация была в линейке браузеров.

x-yuri 23.06.2009 18:35

Цитата:

Работает быстро...
по сравнению с чем? Почему-то я уверен, что ты ничего не мерял

Цитата:

И код и шаблон разные, но кода больше нада...
компактный xml/xslt в студию

Цитата:

В случае с моим сайтом, innerHTML никак не канает... так что это нада там, где ну очень много кода есть готового... тогда да... и работает быстрее...
почему не канает? На данный момент, думаю, у тебя вообще можно прямо на сервере html отдавать. Разве что если ты какие-нибудь стили (>1) навороченные придумаешь

Цитата:

Кста, при правильном использовании XSL может сильно уменьшить трафик..
по сравнению с неправильным использованием js? Может быть. Во-первых, за счет чего? Во-вторых, можно пример?

x-yuri 23.06.2009 18:38

кстати, ты знаешь, что microsoft входит в w3c

B~Vladi 23.06.2009 18:54

Цитата:

Сообщение от Kolyaj
IE6 (да и 5-й тоже) опережал свое время на годы

Бред, даже обсуждать не хочу...
Цитата:

Сообщение от x-yuri
по сравнению с чем? Почему-то я уверен, что ты ничего не мерял

Что мерить?! Что сравнивать?! XSLT процессоры уже давно измерены и сравнины...
Цитата:

Сообщение от x-yuri
компактный xml/xslt в студию

Если хочешь сравнить, сам напиши xml и несколько xsl, а потом JS-парсинг и посмотри.
Цитата:

Сообщение от x-yuri
На данный момент, думаю, у тебя вообще можно прямо на сервере html отдавать.

Неправильно думаешь. У меня НИКАК нельзя HTML отдавать.
Цитата:

Сообщение от x-yuri
по сравнению с неправильным использованием js? Может быть. Во-первых, за счет чего? Во-вторых, можно пример?

По сравнению с передачей HTML. Причём тут JS? мы говорим о передаваемых данных. За счёт XSL. Пример на сайте.

x-yuri 23.06.2009 19:10

Цитата:

Они много чего придумали. IE6 (да и 5-й тоже) опережал свое время на годы. Если бы они его не забросили, не известно, какая бы сейчас ситуация была в линейке браузеров.
Цитата:

Бред, даже обсуждать не хочу...
видели, кстати, такое

Цитата:

Что мерить?! Что сравнивать?! XSLT процессоры уже давно измерены и сравнины...
и все что я про них слышал: что они тормозят (правда я в основном про php слышал, но...)

Цитата:

Если хочешь сравнить, сам напиши xml и несколько xsl, а потом JS-парсинг и посмотри
а при чем тут js-парсинг? js-парсинг - это извращение, на клиентской стороне есть другие нормальные способы

Цитата:

Неправильно думаешь. У меня НИКАК нельзя HTML отдавать
причина?

Цитата:

По сравнению с передачей HTML. Причём тут JS? мы говорим о передаваемых данных. За счёт XSL. Пример на сайте
а выше ты js-парсинг упоминал ;)

Цитата:

За счёт XSL
это все объясняет :haha:

x-yuri 23.06.2009 19:33

ну вот берем с твоего сайта
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 выигрывает. Замечания?

x-yuri 23.06.2009 20:18

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

B~Vladi 24.06.2009 09:54

Цитата:

Сообщение от 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>

и выигрыш будет очевиден.

B~Vladi 24.06.2009 09:57

+если у нас будт больше узлов cheat, то выигрыш будет расти быстрее... Для простых xml, xsl будет и меньше. Потом, для многих xml используется одни xsl из кэша - ещё выигрыш...

B~Vladi 24.06.2009 09:58

Цитата:

Сообщение от x-yuri
innerHTML (1653 байт)

А это без закрывающихся <td>???


Часовой пояс GMT +3, время: 11:15.