Pull to refresh

Comments 9

Топика-ссылки было бы достаточно.
Спасибо, учту на будущее.
Ссылки отменили вроде как примерно полгода назад?
Ой, вот я клуша! И правда отменили…
Долго же вы. Сделали, когда это стало фактически не нужно — уже давно pushState появился и поддерживается современными браузерами, и все популярные js библиотеки(или плагины к ним) поддерживают pushState с фолбеком на хеши.
Кривая схема какая-то, на первый взгляд. Сегодня хеши, завтра pushState, послезавтра еще что-то.
Кроме того, появляется искушение для cloaking.
Правильно делать нужно по другому.

Нужно просто понять, что ajax — это лишь транспорт.

То есть, на примере, приведённом в статье, страница должна располагаться по адресу www.examplesite.ru/blog
При этом и человек, у которого отключен js, и робот, увидят html-версию страницы.
Если же на клиенте включен js, то начинает работать красивая логика сайта и ускорять загрузку и т.п.
Конкрентно — для загрузки контента по ajax браузер также обращается по ТОМУ ЖЕ адресу www.examplesite.ru/blog и сервер просто навсего отдаёт браузеру контент в другом формате, например, json, да или всё тот же html. Клиент принимает данные и располагает их в нужном месте страницы. Всё, никаких вывертов делать не нужно, менять поисковики, менять сайты и прочее-прочее.

Приведу примеры, как сервер может понять, что запрос от клиента пришёл ajax-овый. Это во-первых, тот самый заголовок X-Requested-With, равный XMLHttpRequest. Во-вторых, для большей надёжности (прокси режут заголовки и т.д.), можно передавать какой-нибудь параметр вида &ajax=1, которые соотв. передаётся только через js. В-третьих, если внести в архитектуру сайта правило, что если url оканчивается на .html, то передаётся обычная версия для роботов и клиентов без js, а если например, оканчивается на .json, то версия в json.

Успешно применяю это в своих проектах. Если нужно, обращайтесь, покажу примеры.
Sign up to leave a comment.

Articles