консультационный вопрос о скорости
скажите, сильно будет тормозить если вот такую функцию юзать
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, время: 21:01. |