2009-05-08 2 views
4

Как вы можете предварительно загрузить всю веб-страницу с помощью JavaScript, чтобы я мог кэшировать эту страницу в браузере пользователей?Как предварительно загрузить ENTRE веб-страницу

Я знаю, как предварительно загружать изображения с помощью JS, но то, что я хотел бы сделать, это предварительно загрузить всю страницу.

Использование: на моем веб-сайте у меня есть страница с картами google с большим количеством другого контента (изображения, css, JS), и для загрузки из не кэшированного браузера требуется много времени (около 10 секунд) ,

Это подстраница к моей домашней странице, и пользователи обычно посещают эту страницу. Так что я хочу сделать, это предварительно загрузить всю страницу со всем загруженным контентом (изображениями, JS) настолько, насколько это возможно, чтобы он был кэширован в браузере пользователей, так что, когда они приходят на эту страницу, он загружается намного быстрее. Загрузка страницы из кэшированного браузера сокращает время от 10 секунд до 2 секунд.

Заранее благодарим за любую помощь.

+0

Эта функция браузера (не поддерживается всеми) https://developer.mozilla.org/en/Link_prefetching_FAQ актуальна. Лично я рассматриваю это как преимущество, которое не требует никакого JS для реализации, но это точно не соответствует вопросу. – Christian

ответ

8

Создайте невидимый или очень маленький <iframe src="second_page.html"> на главной странице.

+0

Хакки и грязные, но эффективные; +1 – Karl

+0

Значит, вы поместили стоимость загрузки второй страницы на первую страницу? Я не думаю, что это мудрое решение. Пользователи, посетившие первую страницу, легко будут отскакивать из-за радикально увеличенной стоимости загрузки своей целевой страницы. –

+0

@ TörökGábor Вы можете установить атрибут src iframe с javascript в onload. Это заставило бы второй не вмешиваться в первую страницу. – nus

2

Возможно, есть некоторые неправильные понятия. Отделять реальное содержимое от причудливых материалов может помочь значительно снизить стоимость загрузки. Вы можете выбирать решения, которые задерживают немедленную загрузку вещей при загрузке документа. (Например, у меня есть демо-версия под названием PlayMaps, которая отображает только статичное изображение в Google Картах, пока пользователь не нажмет на нее и загрузит только интерактивную версию после этого.)

Файлы CSS и JS должны быть сжаты и минимизировали, и старались статически ставить весь контент.

Кроме того, вы можете проанализировать производительность своего сайта с помощью Firebug и YSlow, чтобы получить узкие места.

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