Показать сообщение отдельно
  #28 (permalink)  
Старый 14.07.2010, 14:17
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Что-то я не понял. Вот так видно, что кеширование коллекций какое-то есть, скорее всего (причем именно в FF, в Опере 10.60 все время тратится что-то на выборку, хотя сама она и происходит значительно быстрее):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Some test</title>

        <script type="text/javascript">
<!--
        function _init() {
            var fragment = document.createDocumentFragment();
            for (var i = 100000; i--; ) {
                fragment.appendChild(document.createElement('DIV'));
            }
            document.body.appendChild(fragment);
        }

        function _test() {
            var arr = [],
                results = document.getElementById('results'),
                start = (new Date()).getTime();

            // Get collection
            var elems = document.getElementsByTagName('DIV'),
                l = elems.length;

            results.appendChild(document.createTextNode('Find: ' +
                ((new Date()).getTime() - start) +
                'ms\n'));

            // Push
            start = (new Date()).getTime()
            while (l) {
                arr.push(elems[--l]);
            }

            results.appendChild(document.createTextNode('Push: ' +
                ((new Date()).getTime() - start) +
                'ms\n\n'));
        }
//-->
        </script>
    </head>

    <body onload="_init()"><button onclick="_test()">Test</button><pre id="results"></pre></body>
</html>
Ответить с цитированием