Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.05.2012, 20:23
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

консультационный вопрос о скорости
скажите, сильно будет тормозить если вот такую функцию юзать
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?
Ответить с цитированием
  #2 (permalink)  
Старый 20.05.2012, 20:38
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

А что в ней должно тормозить? вы что-то делаете особое?
Ответить с цитированием
  #3 (permalink)  
Старый 20.05.2012, 20:40
Аватар для vasa_c
Профессор
Отправить личное сообщение для vasa_c Посмотреть профиль Найти все сообщения от vasa_c
 
Регистрация: 12.03.2008
Сообщений: 183

with будет тормозить, локальный контекст будет неоптимизированным.
Ответить с цитированием
  #4 (permalink)  
Старый 20.05.2012, 20:48
Профессор
Отправить личное сообщение для beard Посмотреть профиль Найти все сообщения от beard
 
Регистрация: 08.05.2012
Сообщений: 264

Да вообще лучше не юзать with, везде о нем пишут столько гадостей, а в strict mode вообще кидает исключение SyntaxError. Наверно хотят его изжить из яваскрипт.
Ответить с цитированием
  #5 (permalink)  
Старый 20.05.2012, 20:54
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

Цитата:
with будет тормозить, локальный контекст будет неоптимизированным.
так что лучше без with написать?
Ответить с цитированием
  #6 (permalink)  
Старый 20.05.2012, 21:03
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

По моему время построения DOM когда будут выполнятся строчки типа
style.width = '100px';
и займут львиную долю времени вывода этих 40 элементов
так что с with или без него -все равно-быстродействие не этим в данном случае определяется
но 45 элементов это немного несколько десятков милисекунд-максимум

Последний раз редактировалось vadim5june, 20.05.2012 в 21:08.
Ответить с цитированием
  #7 (permalink)  
Старый 20.05.2012, 21:09
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

а что посоветуете, для подьема скорости?
Ответить с цитированием
  #8 (permalink)  
Старый 20.05.2012, 21:14
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от czp Посмотреть сообщение
а что посоветуете, для подьема скорости?
я думаю вам и не понадобиться ее поднимать-или есть проблемы?
Когда то делал так перед присваиванием dysplay='none'-а в конце возвращал прежнее значение и быстродействие увеличивалось
но сейчас браузеры заметно быстрее стали работать и проблем нет хотя иногда и пару сотен элементов вывожу
Ответить с цитированием
  #9 (permalink)  
Старый 20.05.2012, 21:30
czp czp вне форума
Профессор
Отправить личное сообщение для czp Посмотреть профиль Найти все сообщения от czp
 
Регистрация: 15.10.2011
Сообщений: 213

Цитата:
я думаю вам и не понадобиться ее поднимать-или есть проблемы?
пока еше нет, так как 10 элемов, пока быстро робит, если так же при 35 - 45 будет - то проблем нет
Ответить с цитированием
  #10 (permalink)  
Старый 20.05.2012, 21:40
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

Сообщение от czp
А что в ней должно тормозить? вы что-то делаете особое?
Да почти всё.

1. Постоянные redraw / reflow.
2. Выбираются все дивы, хотя нужны только 2.
3. with

Но всё зависит от того, насколько часто функция вызывается.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по each() и перебору строк таблицы battrack jQuery 1 09.02.2012 14:30
вопрос про возможности JS для рисования и анимации macdack Библиотеки/Тулкиты/Фреймворки 3 15.07.2011 00:13
Вопрос по замыканиям Goodfella Общие вопросы Javascript 20 09.03.2011 01:21
Теоретический вопрос. gods33 (X)HTML/CSS 10 16.12.2010 23:49
мааленький вопрос по Regexp:) mirniy Общие вопросы Javascript 1 22.01.2009 20:47