Mass Dom манипуляция - PullRequest
       2

Mass Dom манипуляция

0 голосов
/ 09 ноября 2010

Мне интересно, кто-нибудь может дать некоторые безопасные рекомендации по максимальному уровню манипуляций с dom, который вы можете сделать с помощью jquery, не замораживая браузер.

Также лучшие методы для массовой манипуляции с DOM.

В принципе, в любое время я мог иметь дело со списками до 40k li

Все, что я на самом деле делаю, это показываю одно, скрывая другое.

Так вот мои вопросы

  • Сколько li я мог бы теоретически манипулировать одновременно, не разбивая браузер?
  • Как мне работать с лиями?
    • Манипулировать как единым объектом (уровень ul)
    • Обведите все li в первом списке, удалив их, а затем вставьте каждый новый li.
    • Зацикливание на куски li (если да, то как большие 10, 100, 1000, 10000 одновременно?)
  • Как мне получить данные? (в формате JSON)
    • Получите данные для всего списка (стоимостью 40 тысяч литов) за один вызов ajax.
    • Вставьте данные для каждого списка при создании страницы (может быть больше 20 списков = 800 000 литов
    • Несколько вызовов ajax для извлечения данных (если да, то как много 10, 100, 1000, 10000 одновременно?)

Ответы [ 2 ]

3 голосов
/ 09 ноября 2010

Если вы действительно хотите манипулировать этим количеством, тогда вам, вероятно, следует принять что-то вроде http://developer.yahoo.com/yui/3/async-queue/

В качестве ответа на вопрос, сколько вы должны работать за раз, вы можете встроить калибровку,смотрит на то, как быстро последний набор завершен и работает с более / менее соответственно.Это может дать вам что-то, что работает во всем, от настольного Chrome до мобильного IE.

То же самое относится и к вызовам AJAX, чтобы он мог увеличиваться в соответствии с чистой скоростью.

1 голос
/ 09 ноября 2010

В качестве предупреждения: это очень зависит от производительности вашего компьютера.Честно говоря - все, что приближается к 100 элементам в манипуляциях с DOM, становится немного глупым и дорогим.Тем не менее:

1) Зависит от вашей системы, моя старая система достигает около 30, а моя более новая может получить до 120, прежде чем я сломаю вещи.

2) Работайте с ними какбольшой уровень, насколько это возможно.Манипулирование ul с кучей li в нем намного быстрее, чем манипулирование связкой li.Используйте jQuery и сохраняйте объект в переменной (чтобы вы не запрашивали DOM при каждом его использовании) для повышения производительности.

3) Сначала загрузите первые данные, которые увидит пользователь, а затем извлеките их аналогичным образом.размерные партии.Если вы видите только 20 элементов li одновременно, нет никакой причины загружать больше, чем это плюс небольшая буферная область (30?).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...