сколько div вы можете иметь, прежде чем дом замедлится и станет нестабильным?

Я разрабатываю приложение jQtouch, и каждый запрос, выполненный через ajax, создает новый div в документе для загруженного контента. В любой момент времени отображается только один div.

Сколько div я могу иметь, прежде чем приложение перестанет отвечать на запросы и работать медленно?

У кого-нибудь есть идеи по этому поводу?

РЕДАКТИРОВАТЬ: это приложение для iPad, работающее в Safari, и в нем будет менее 1000 div с очень простым контентом.


person Slee    schedule 27.05.2010    source источник
comment
Контрольная работа. Тогда ты узнаешь.   -  person Instance Hunter    schedule 27.05.2010


Ответы (5)


Честно говоря, если вам действительно нужен абсолютный ответ на этот вопрос, возможно, вы захотите пересмотреть свой дизайн.

Ни один из приведенных здесь ответов не будет правильным, поскольку он зависит от многих факторов, характерных для вашего приложения. Например. интенсивное или малое использование CSS, размер элементов div, количество фактического рендеринга графики, необходимого для каждого элемента div, целевой браузер/платформа, количество слушателей событий DOM и т. д.

То, что вы можете, не означает, что вы должны! :-)

person mdma    schedule 27.05.2010

У меня были десятки тысяч, может быть, даже сто тысяч элементов div на экране одновременно. Производительность либо хорошая, либо плохая, в зависимости от:

Разобрано из HTML или сгенерировано динамически в JavaScript?

Разбор из HTML означает, что у вас БОЛЬШОЙ источник html, и это может привести к зависанию браузеров. Генерируется в JS на удивление быстро, даже в Internet Explorer, который является самым медленным из всех браузеров для JS.

person Neil N    schedule 27.05.2010
comment
Интересно... в этом есть смысл, но, по моему опыту, ничто так не тормозит работу браузера, как большое количество javascript. Таким образом, задача состоит в том, чтобы разбить сценарий генерации и убедиться, что он уступает промежуточному пользовательскому интерфейсу. - person harpo; 27.05.2010
comment
Действительно, разобранный JS удивительно быстр! - person Fabio Milheiro; 25.02.2014

Как уже говорили другие, на самом деле нет ответа.

Однако в этом выступлении о Google Maps API версии 3 спикер приводит число десять тысяч несколько раз, как основной порог неудовлетворенности браузера.

http://code.google.com/apis/maps/documentation/javascript/< /а>

person harpo    schedule 27.05.2010
comment
Это из безымянного Дао // То, что возникли Небо и Земля // Названное есть лишь // Мать десяти тысяч существ. - person Manuel Ebert; 19.03.2012

Без определения конкретной среды невозможно ответить на ваш вопрос.

И даже в этом случае все, что вам говорят, — всего лишь догадки. Вам нужно провести собственное тестирование на реальных конфигурациях с разными браузерами и оборудованием. Вам также нужно будет установить некоторые тесты производительности, чтобы решить, что вообще означает «слишком медленно».

person LBushkin    schedule 27.05.2010

Я смог без проблем добавить несколько тысяч div. Конечно, зависит от того, что вы будете делать потом, и от памяти на клиентской машине. Все остальные в этом правы.

Как сказал Харпо, 10К, вероятно, хороший потолок. В свое время я заметил проблемы со скоростью, начиная примерно с 4K div, но с тех пор аппаратное обеспечение улучшилось.

И, как сказал Нил Н., добавление div с помощью скриптов лучше, чем наличие огромного исходного кода HTML.

И, чтобы ответить на комментарий Харпо, один из способов «разбить его», чтобы JS не блокировал страницу и не выдавал ошибку «страница работает медленно», — это вызывать таймер в конце каждой процедуры «добавить div». , а таймер, в свою очередь, снова вызывает вашу функцию «добавить div».

Теперь МОЙ вопрос: можно ли «рисовать», чтобы вам не нужно было добавлять тысячи div? Это можно сделать с помощью тега canvas в некоторых браузерах, но я не думаю, что это возможно с VML (проект excanvas) в IE. Либо это? Я думаю, что VML «рисует», добавляя новые элементы в DOM, и в этот момент вы также можете использовать DIV, если это не простая форма.

Можно ли изменить источник изображения с помощью скрипта? (изображение в DOM, конечно, а не исходное изображение на сервере.)

person Jay    schedule 28.06.2010