2014-01-04 5 views
7

У меня есть приложение, которое отображает страницу с 5-10000 строк в элементе таблицы и имеет выпадающее меню, которое переключается на другие представления с аналогичной структурой. В настоящее время я выполняю асинхронный запрос при переключении между представлениями (я также очищаю/удаляю текущее представление из документа) и каждый раз загружаю соответствующий список; однако, я думал оСледует ли отслеживать количество элементов html, загружаемых на страницу?

1) загружая все виды в фоновом режиме, прежде чем они будут запрошены для просмотра, чтобы они мгновенно загружались.

и

2) Просто скрывается определенный набор строк, а не удаляя его, так что если клиент переходит обратно будет мгновенным, а также.

Это означает, что в текущий документ будут загружены потенциально 10 тысяч тысяч элементов html; это проблема? Что, если это было более 10 тысяч?

+0

Можете ли вы попробовать firebug, затем HTML-тег, затем щелкнуть правой кнопкой мыши элемент, который вы хотите проверить количество элементов, и выбрать «Журнал событий». Я знаю, что это события, но вы можете сделать действительно полезный интеллектуальный анализ данных оттуда. .. –

+1

Я не совсем уверен, что если загрузить максимум 3 x 10 000 строк, это будет хорошей идеей. Похоже, это может быть довольно медленно: http://jsfiddle.net/ZcGJF/ –

+0

Возможно, связано: http://stackoverflow.com/questions/4365741/javascript-performance-problems-with-too-many-dom-nodes –

ответ

4

Загрузка 10000+ элементов HTML на вашу страницу - не очень умная идея. Если компьютер пользователя имеет нормальную скорость, пользователь может испытывать небольшое отставание, и если компьютер пользователя работает медленно, это может привести к сбою системы (в зависимости от объема оперативной памяти на компьютере).

Методом, который вы можете исследовать, является lazyload элементов HTML - это означает, что когда пользователь прокручивается до определенной части страницы, элементы загружаются через AJAX. (также известный как «бесконечная прокрутка»).

Это означает, что движок рендеринга браузера не должен отображать столько элементов за один раз, что экономит память и увеличивает скорость.

0

Размер вашего документа html был бы значительным ... У меня когда-то была страница с 5000 ~ 10000 позиций (строки таблицы), и браузер (IE) слишком долго выполнял визуализацию (загрузка страницы, разбор и рендеринг Это).

Лучшим решением для меня является создание WebService с системой LazyLoading.

Таким образом, IMHO да, следует отслеживать количество элементов в документе HTML.

1

Это зависит от элементов HTML, но я бы сказал, как правило, не загружать заранее.

Когда я говорю, что это зависит от элементов, я имею в виду, например, взглянуть на facebook. Они загружают, возможно, 10 или 20 элементов в фид, а затем добавляют по мере прокрутки, потому что каждый элемент настолько богат содержимым (фотографии, видео и т. Д.).

Тем не менее, на оборотной стороне подумайте о том, сколько информации находится в каждой строке, если это так, менее 500 байт, 500 x 10000 = 5 МБ, что не является ужасной нагрузкой для веб-запроса, и если вы можете кэшировать разумно, возможно, это будет намного меньше.

Суть в том, что количество элементов HTML не имеет большого значения, подумайте о количестве данных, которое оно составляет. Мой совет, пересечь этот мост, когда вы доберетесь туда. Контролируйте время запроса, если они слишком длинны, придумайте загрузчик страницы AJAX, который не должен быть слишком сложным.

0

Да, конечно! Количество элементов в документе HTML можно отслеживать.! Используйте FireBug в Firefox! enter image description here

+0

Не могу прочитать это. –

Смежные вопросы