Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.12.2011, 22:05
Аспирант
Отправить личное сообщение для Pattern Посмотреть профиль Найти все сообщения от Pattern
 
Регистрация: 13.05.2009
Сообщений: 37

Сообщение от Kolyaj Посмотреть сообщение
В том-то и дело, что не массив. Кто вам сказал, что они в память все загружаются? А вот ваша функция как раз массив формирует, и как раз память и жрет.
Согласен с тобой. Однако, во первых, не всегда какую либо задачу можно решить на лету. Во-вторых, когда данные нужны для обработки не в одном месте, на мой взгляд лучше вызвать 1 раз функцию и получить нужный результат, чем снова и снова перебирать 1 и тот же метод. В третьих, если нужно решить кроссбраузерно (мало ли что то пойдёт не так - привет IE, у него всегда всё не так, как у нормальных браузеров ), не придётся в десятках мест переписывать один и тот же метод изменения. Достаточно будет поправить искомую функцию.
Что касательно возвращаемого массива.... Ну так любая созданная переменная создаётся в памяти, будь то array, будь то int, и любая из них память откушивает, каждая в своей мере, но откушивает. Тут собственно уже ложится дело на плечи разработчика какие данные возвращать и как это скажется на памяти, если мучает параноя =)
Я предложил свой вариант, для остальных - на их усмотрение, как это можно применить на собственной практике.
Ответить с цитированием
  #12 (permalink)  
Старый 07.12.2011, 23:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Вот некропостеры-то.

Сообщение от Pattern
Согласен с тобой. Однако, во первых, не всегда какую либо задачу можно решить на лету. Во-вторых, когда данные нужны для обработки не в одном месте, на мой взгляд лучше вызвать 1 раз функцию и получить нужный результат, чем снова и снова перебирать 1 и тот же метод. В третьих, если нужно решить кроссбраузерно (мало ли что то пойдёт не так - привет IE, у него всегда всё не так, как у нормальных браузеров ), не придётся в десятках мест переписывать один и тот же метод изменения. Достаточно будет поправить искомую функцию.
Сколько интересных частных случаев. Зачем они приведены рядом с универсальной функцией?

Про getElementsByTagName. Это такая виртуальная штука. Она содержит в себе имя тега и не содержит в себе выборку по этому тегу. Поиск нужного элемента происходит при обращении к нему. Поэтому вызов getElementsByTagName будет всегда очень быстрый, а взятие элемента из коллекции -- медленно.
Напротив, если положить все элементы в массив, т.е. обойти заранее коллекцию, то взятие из массива будет уже быстрым.

Выводы: если по коллекции нужно пройтись один раз, или вообще нужен только один элемент, то не надо класть все элементы в массив. Если элементы перебирать нужно несколько раз, то лучше положить их в массив.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выделение одиночных тэгов Pattern Events/DOM/Window 7 26.05.2009 23:29
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
zoom для нескольких фото kodermax jQuery 1 20.02.2009 15:46
Задание CSS для загруженных во фрейм страниц <Pool> Общие вопросы Javascript 1 14.01.2009 16:59