на вот тести
|
я тестил в опере, в других не знаю... может и медленнее... Так что от других браузеров я отмахиваюсь
|
ок, потестил... Результат оказался ужастным :(
Opera: getElementById - 1 030 276 выполнений/1000 мс querySelectorAll - 1 096 516 выполнений/1000 мс Chrome: getElementById - 2 203 944 выполнений/1000 мс querySelectorAll - 129 707 выполнений/1000 мс FireFox: getElementById - 993 481 выполнений/1000 мс querySelectorAll - 150 381 выполнений/1000 мс IE 8: getElementById - 119 640 выполнений/1000 мс querySelectorAll - 63 778 выполнений/1000 мс Да беру свои слова обратно, не пробовал тестить на других... в Опере быстрее так как сижу на ней там и тестил... А оказалось в среднем ужас. |
Вообщем вывод простой, кто на чем сидит тот о том и знает... Я на Опере, и понятно дело утверждаю что быстрее... Человек на Хроме, и понятно дело что у него быстрее... Но все же любопытно, чтож там в опере такого сделали что работает быстрее getElementById, жаль что они никогда не откроют исходники своего движка :(
|
А осел как всегда "реактивен" :D, жаль что мне ща софт именно под него писать приходится...:-/
Да смотрю в опере querySelectorAll оставляет другие браузеры далеко позади, эх поделились бы исходничками :) хотя может она просто кеширование какоенить врубает... |
Цитата:
function test(){ for(var q in ['a','b','c','d','e','f','g','h','i','j'] ) document.getElementById(q); } test();и function test(){ for(var q in ['a','b','c','d','e','f','g','h','i','j'] ) document.querySelectorAll('[id="'+q+'"]'); } test();и вот результаты: Opera: getElementById - 189 692 выполнений/1000 мс querySelectorAll - 120 429 выполнений/1000 мс Chrome: getElementById - 420 454 выполнений/1000 мс querySelectorAll - 12 735 выполнений/1000 мс в других не пробовал так как нет смысла... Итог в опере результаты почти идентичны, скорость падает в основном из-за склеивания строки. Но в целом она работает и с тем и с тем методом с одинаковой скоростью. |
Всетаки в голову не лезет как простой getElementById работает медленнее чем сложный querySelectorAll, хотя судя по небольшой разницы в скоростях может в оперовском методе getElementById('foo') просто и вызывается querySelectorAll('[id="foo"]') :)
|
Часовой пояс GMT +3, время: 06:30. |