|
|
. Это вынудит браузер загрузить вначале содержательную часть веб-документа, а предзагрузку дополнительной графики оставить «на постом». Благодаря этому, скорость отображения страницы не пострадает, увеличится только время первой загрузки.
Предзагрузка с помощью JavaScript Недостаток предыдущего способа состоит в том, что если в браузере нет поддержки CSS или она намеренно выключена, кэшируемые картинки дружно отобразятся в виде бесформенной кучи.
Альтернативный способ основан на JavaScrpt. Он тоже достаточно прост, и при том никак не повредит внешнему виду сайта, даже если у пользователя по какой-то причине отключен JS (правда, в таком предзагрузка не произойдет вообще).
Код приведенного ниже скрипта можно вставить в любую часть страницы, например в контейнер head.
<script type="text/javascript">
if (document.images) {
img1 = new Image();
img2 = new Image();
img1.src = "/img/image01.gif";
img2.src = "/img/image02.gif";
}
</script>
Имена перечисленных файлов, конечно же, необходимо заменить актуальными значениями, после чего они будут загружены в кэш при первом открытии страницы в браузере и в дальнейшем станут доступны без временных затрат на обращение к серверу.
Ссылки по теме:
|
© 2007-2012 paradigm.ru | Лицензия: Creative Commons.
Хостинг: dreamhost.com | Дизайн: alex.musayev.com May force be with you. |
# pepelsbey: (27 декабря, 2007 @ 00:45)
Насколько мне известно, существует особенность, при которой браузер не загружает картинки, которым назначен (или унаследован) display:none… Давно не занимался этими вещами, так что запамятовал — не то Opera, не то ещё кто-то.
Второй JS-способ было бы логичнее завернуть в функцию массивом картинок на входе и циклом внутри. Ну и проверять document.images на исходе 2007 года… это забавно )
# admin: (27 декабря, 2007 @ 01:38)
pepelsbey: По поводу display:none у меня тоже были подозрения. По хорошему, надо бы это протестировать, но даже если в каких-то браузерах способ не работает, думаю, можно решить вопрос вариациями на тему. Например, задавать display:none не самим img, а контейнеру, в они будут храниться. Или уменьшить их до одного пикселя и поиграть с позиционированием – “задвинув” под какой-нибудь слой.
По поводу использования функции во втором способе – согласен, т.к. картинок обычно не две, как в примере. Массив картинок для нее вообще хорошо было бы как-то генерировать на серверной стороне, чтобы свести человеческий фактор к минимуму (если составлять список, наверняка какая-то из них окажется забытой или лишней). Можно, например, помечать картинки для предзагрузки специальным префиксом и в коде шаблонизатора генерить массив имен файлов прямо в виде JS.
# Loading Images або анімаційні картинки для вашої веб-сторінки | Блоґ Виспянського Ігоря: (22 октября, 2008 @ 08:49)
[...] «Два хороших способа предзагрузки графики» (російською мовою) . [...]