Есть ли разумный предел для предварительной загрузки «display: none»? - PullRequest
3 голосов
/ 20 января 2012

Я разрабатываю одностраничный сайт. Все разделы сайта всплывают модально в элементах DIV, поэтому он никогда не покидает страницу браузера. Изначально у меня есть все разделы, скрытые с помощью css с использованием «display: none», и навигация показывает и скрывает их соответственно.

Теперь я подошел к составлению раздела портфолио, и я начинаю задумываться над тем, будет ли лучше использовать AJAX для каждого элемента портфолио, так как они содержат большие изображения. Есть ли приблизительное руководство по разумному ограничению предварительной загрузки? Если бы все элементы были предварительно загружены, файл HTML выглядел бы довольно чудовищно.

Я понимаю, что это немного общий вопрос, и кажется, что предварительная загрузка всего - плохая идея, но я не хочу догадываться. Я не совсем уверен, какие ресурсы используются компьютером пользователя, когда для элементов установлено «display: none» (например, это проблема с оперативной памятью?).

Ура! :)

Ответы [ 3 ]

1 голос
/ 20 января 2012

Как упомянул @Digbyswift, наличие одного большого файла HTML с большим количеством элементов увеличивает размер страницы, что влияет на общее время загрузки.

Для более старых браузеров число элементов на странице имело_much_больше заметного эффекта, но вам придется войти в диапазон десятков тысяч элементов, чтобы начать работу над потолком.

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

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

Я бы сказал, что вам нужно проверить различия, которые это делает, и основывайте свое решение на этом.Это может повлиять на сжатие ответов (также называемое GZip или Deflate).

Кроме того, для «портфолио» вы упомянули, что есть много больших изображений.Лично я бы, вероятно, не имел бы фактические теги <img /> в HTML для этого раздела, чтобы браузер не загружал их все изначально, а вместо этого загружал изображения в при необходимости .запись элементов с помощью JavaScript, так как эти изображения должны быть отображены.Для этого есть целый ряд методов, любой из которых вы можете добавить в смарт-ключах около , когда загружают изображения, но сокращение этих больших обращений к серверу значительно ускорит страницу.Вероятно, даже до такой степени, что наличие одной огромной HTML-страницы не будет падением производительности и, скорее всего, сделает ее быстрее.

0 голосов
/ 20 января 2012

Во-первых, в современном браузере есть огромная память (например, Firefox, Chrome, IE, ...).Пользователи могут установить его все более и более легко ...

В мобильных браузерах они ограничены около 10 МБ.Подробнее об ограничении памяти вы можете прочитать здесь: http://www.yuiblog.com/blog/2010/06/28/mobile-browser-cache-limits/

0 голосов
/ 20 января 2012

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

Тем не менее, вам нужно будет разобраться, требуется ли для сценария AJAX размер файла больше, чем фактический жестко заданный HTML.

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