Я делаю сайт с бесконечной прокруткой. То есть, когда пользователь прокручивается в нижней части страницы, новый блок содержимого добавляется к нижней части. Это очень похоже на Facebook. Вот пример загрузки трех страниц:
_________
| |
| 0 |
|_________|
| |
| 1 |
|_________|
| |
| 2 |
|_________|
Когда пользователь нажимает что-то на последней странице, я беру их на отдельную страницу подробностей. Но если пользователь нажимает на страницу результатов поиска, у меня нет памяти об их предыдущем местоположении и снова загружайте страницу 0.
_________
| |
| 0 |
|_________|
Я знаю некоторые методы старой школы, чтобы решить эту проблему, но у каждого из них есть серьезные проблемы:
URL-адрес хэша
Я могу обновлять URL-адрес каждый раз при загрузке новой страницы. Например: www.website.com/page#2. Когда пользователь переходит на страницу подробностей и обратно, URL-адрес сообщает мне последнюю загруженную страницу, поэтому я загружаю ее для него:
_________
| |
| 2 |
|_________|
Но это плохой опыт работы с пользователями. Загружается только страница 2. Пользователь не может просматривать предыдущий контент. Я не могу просто загружать страницы 0, 1 и 2, потому что это перегрузит сервер, учитывая, что на кнопку "Назад" приходится 50% веб-трафика (исследование Якова Нильсена).
Локальное хранилище
В файлах cookie нет хранилища для хранения многих страниц данных. Локальное хранилище должно быть достаточно места. Одна из идей - хранить все загруженные страницы в локальном хранилище. Когда пользователь возвращается к результатам поиска, я загружаюсь из локального хранилища вместо того, чтобы ударять по серверу. Проблема с этим подходом заключается в том, что большая часть моих пользователей находится в браузерах, которые не поддерживают локальное хранилище (IE7).