2010-05-27 1 views
11

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

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

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

EDIT: Его приложение IPad работает на сафари, и это было бы менее 1000 Div с самим основным содержанием

+6

Test. Тогда вы узнаете. –

ответ

7

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

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

Просто потому, что вы можете это не значит, что вы должны ! :-)

1

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

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

15

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

Возможно, вы используете JavaScript или сгенерировали динамически в JavaScript?

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

+0

Интересно ... это имеет смысл, но, по моему опыту, ничто не замораживает браузер, как много javascript. Таким образом, задача состоит в том, чтобы разбить сценарий генерации и убедиться, что он уступает интерфейсу между ними. – harpo

+0

Действительно разобран JS неожиданно быстро! –

6

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

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

http://code.google.com/apis/maps/documentation/javascript/

+4

Это из неназванного Дао // Что Небеса и Земля возникли // Именем является только // Мать десяти тысяч существ. –

0

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

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

И, как сказал Нейл Н, добавление divs через скрипты лучше, чем наличие огромного HTML-источника.

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

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

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