Pull to refresh

Comments 9

UFO landed and left these words here
Спасибо, учту на будущее.
Ссылки отменили вроде как примерно полгода назад?
UFO landed and left these words here
Долго же вы. Сделали, когда это стало фактически не нужно — уже давно 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