Мгновенная загрузка URL-навигации

Уже давно известно, что «быстрая навигация» легко работает для http://example.com/#1 --> http://example.com/#2.

Тем не менее, есть новая техника. Он обеспечивает быструю навигацию между http://example.com/1 --> http://example.com/2.

ПРИМЕР: http://rageslide.com/

Как видно из примера, навигация между http://rageslide.com/1 и http://rageslide.com/2 и т. д., прокручивая, по-видимому, НЕ ЗАСТАВЛЯЕТ ПЕРЕЗАГРУЗИТЬ ВЕСЬ САЙТ.
Я бы хотел хотел бы сделать то же самое для своего сайта, но я понятия не имею, как это сделать. Все страницы, обслуживаемые моим сайтом, являются динамическими (через PHP и MYSQL).

У меня есть эта идея:

  • Кэшируйте сгенерированный вывод страницы (http://example.com/2) на 60 секунд.
  • Когда пользователь выполняет предварительную загрузку http://example.com/1 (http://example.com/2 ) через Javascript.
  • Пользователь переходит с http://example.com/1 на http://example.com/2. Поскольку содержимое предварительно загружено и кэшировано, оно будет доставлено пользователю мгновенно.

Другая идея:

Будет ли это работать? Или как лучше решить эту проблему?


person Jonas Kaufmann    schedule 01.12.2012    source источник


Ответы (3)


Нет, URL-адрес, который вы видите, не используется для загрузки другой страницы. В коде javascript, содержащемся на веб-сайте, есть запросы AJAX, которые загружают новый контент для отображения и обновления строки URL.

Подробнее об этом можно прочитать в этой статье и в следующих вопросах, заданных в прошлом:

Изменить URL-адрес без перезагрузки страницы

Обновление адресной строки с новым URL-адресом без хеша или перезагрузите страницу

person 4lbertoC    schedule 01.12.2012
comment
Большое спасибо! У меня есть ощущение, что ссылки, которые вы предоставили, приведут меня к решению. Сообщу с решением, надеюсь. - person Jonas Kaufmann; 02.12.2012
comment
У меня все еще есть вопрос: поскольку мой контент является динамическим, лучшим решением будет кешировать php-документы на 60 секунд и автоматически предварительно загружать следующую страницу в фоновом режиме ИЛИ просто запрашивать следующую страницу при переходе пользователя ? Изменить: когда я думаю об этом, мне действительно не нужно кэшировать php-документы. Я могу просто сохранить предварительно загруженный html в переменной. - person Jonas Kaufmann; 02.12.2012
comment
Верный. Вы можете сделать запрос (n + 1)-й страницы, пока находитесь на n-й странице, и сохранить ее содержимое в переменной или даже в скрытом div (так что это даже быстрее, поскольку элементы уже были добавлены в DOM-дерево) - person 4lbertoC; 02.12.2012

я могу думать о двух возможных вещах, которые вы можете попробовать.

во-первых, просто используйте iframes для загрузки следующей и предыдущей страницы каждой страницы, и когда кто-то переходит на следующую страницу, загрузите следующую страницу в новый iframe или div с ajax или любым другим элементом html в этом отношении.

другой — использовать атрибут rel, вот объяснение об этом.

Надеюсь, что это помогает вам

person Eyal Alsheich    schedule 01.12.2012
comment
Только что попробовал использовать атрибут rel. Это не то, что использует пример, который я упомянул. Атрибут rel вызывает загрузку нового документа, в примере этого не происходит! - person Jonas Kaufmann; 02.12.2012
comment
затем просто обратитесь к первому варианту, который я предоставил, в этом варианте вы можете использовать функции load() и append() с jquery, чтобы легко добавлять больше контента на свою страницу. - person Eyal Alsheich; 02.12.2012
comment
Я думаю, что решение более сложное. Сейчас я читаю ссылки @4lbertoC. - person Jonas Kaufmann; 02.12.2012

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

для кеширования изображений поставить галочки в конце тела <img .... height="0" width="0">

и для страниц <link rel=”prefetch” href=”url” /> также есть атрибут rel для следующей и предыдущей страниц типа просмотра слайдов

Примечание: URL-адрес может быть ресурсом javascript.

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

person technosaurus    schedule 01.12.2012