Как корректно вернуться назад, при ajax подгрузке контента?
Всем привет! Пытаюсь сделать бесконечную ленту, но сталкиваюсь с проблемой. Допустим, пользователь пролистал 500 постов вниз и решил его открыть, прочитал и кликнул кнопку назад. Какие есть варианты вернуться снова к 500 посту в ленте, кроме открытия поста с помощью ajax, поверх основного контента?
Ориентир: нужный "якорь" (линк) в области отображения и вектор скроллинга страницы относительно него, для подгрузки ленты выше или ниже.
Пишем в куки: URL вместе с якорем к нужному посту в ленте, при возврате с этими куками "схлопываем" всё, что выше нужного поста, чтобы не гонять трафик, и не заставлять браузер/пользователя пролистывать/скроллить вниз и сразу же удаляем куки.
Но обязательно нужно предусмотреть аякс-подгрузку и вверх, если он захочет читать ленту в обратном направлении (поднимаясь вверх).
xmoonlight, конечно все именно так и зависит. Тот же ВК выбрали наименее трудоемкий путь и статьи открывают в модалке. Это решает разом кучу вариантов - что может пойти не так.
Владимир Дружаев, а почему вы вообще допускаете, что чем круче имя на рынке, тем сделано у них - правильнее, и лучше - уже не сделать и ориентироваться надо на них и повторять как макака?)
ВК выбрали наименее проблемный подход - открытие в модальном окне. Даже статьи они открывают в модалке но заполнитель (overlay) делают белым и кажется будто ты на отдельной странице. Закрывается всё это дело обычным кликом по кнопке "Закрыть".
В комментарии к ответу xmoonlight я написал какие геморные ситуации придется решать с вашей идеей открывать именно на новой странице. И это только то что пришло в голову - устройств много и вариантов нестандартного поведения пользователя будет еще больше. Вам потом это исправлять и поддерживать. Хотя если тестирование - ваша стезя - реализуйте. После каждого обновления будете их автоматически запускать и смотреть все накопленные ситуации что ничто не отвалилось.
Обычно достаточно возвращаться не к предыдущей ленте, а к месту в пред ленте, так что при нажатии на кнопку показать еще, нужно двигать пагинацию и в урле писать пейдж = 2, после нажатия назад, возвращаемся на тоже место где будет 500 страница с дефолтным количеством загруженных постов, если очень хочется можно добавить кнопку сверху "загрузить предыдущие"