консультационный вопрос о скорости
скажите, сильно будет тормозить если вот такую функцию юзать
function myfunc(elem) { with (elem) { with (getElementsByTagName('div')[0]) { style.width = '100px'; style.height = '100px'; style.margin = '0px'; } getElementsByTagName('div')[1].style.display = 'none'; style.margin = '0px 15px 15px 15px'; style.width = '100px'; style.height = '100px'; style.cssFloat = 'left'; } } при учете что входящих elem будет штук 35 - 45? |
А что в ней должно тормозить? вы что-то делаете особое?
|
with будет тормозить, локальный контекст будет неоптимизированным.
|
Да вообще лучше не юзать with, везде о нем пишут столько гадостей, а в strict mode вообще кидает исключение SyntaxError. Наверно хотят его изжить из яваскрипт.
|
Цитата:
|
По моему время построения DOM когда будут выполнятся строчки типа
style.width = '100px'; и займут львиную долю времени вывода этих 40 элементов так что с with или без него -все равно-быстродействие не этим в данном случае определяется но 45 элементов это немного несколько десятков милисекунд-максимум |
а что посоветуете, для подьема скорости?
|
Цитата:
Когда то делал так перед присваиванием dysplay='none'-а в конце возвращал прежнее значение и быстродействие увеличивалось но сейчас браузеры заметно быстрее стали работать и проблем нет хотя иногда и пару сотен элементов вывожу |
Цитата:
|
Цитата:
1. Постоянные redraw / reflow. 2. Выбираются все дивы, хотя нужны только 2. 3. with Но всё зависит от того, насколько часто функция вызывается. |
Часовой пояс GMT +3, время: 06:56. |