PHP: как определить, поддерживает ли браузер javascript в PHP?

Я создаю сайт с глубокими ссылками на AJAX.

Я хочу, чтобы PHP загружал весь HTML-код страницы, если пользователь пытается получить доступ к сайту с помощью браузера, не поддерживающего Javascript, или если это поисковый робот. Обычно PHP возвращает всю страницу.

Напротив, когда пользователь пытается получить доступ к сайту с помощью браузера, поддерживающего Javascript, я хочу, чтобы PHP возвращал только код шаблона, а Javascript (AJAX) позаботился обо всем остальном. Обычно PHP загружает только элементы дизайна и позволяет Javascript заполнять их содержимым.

Я изучал функцию PHP get_browser () , но мне показалось, что это не такой надежный инструмент. Какова отраслевая практика проверки, поддерживает ли браузер Javascript или это поисковый робот, использующий PHP?


Справочная информация :

Почему я хочу, чтобы сайт имел такое поведение.

Поскольку я хочу, чтобы домашняя страница загружалась просто путем загрузки адреса: example.com , который не отправляет никаких запросов в PHP, PHP возвращает HTML-код домашней страницы. Однако это вызывает проблемы, когда пользователь пытается загрузить следующую страницу: example.com # foo . Итак, в этом примере PHP вернет домашнюю страницу, и после загрузки домашней страницы Javascript (AJAX) изменит содержимое так, чтобы он отображал правильное содержимое для #foo .Это заставит пользователя увидеть домашнюю страницу, поэтому время загрузки будет медленнее, а взаимодействие с пользователем будет не таким приятным. Однако, если мой PHP-скрипт может выяснить, что если использование браузера с поддержкой Javascript пытается загрузить страницу, он вернет только шаблон веб-сайта, у которого нет содержимого), и javascript заполнит этот шаблон любым содержимым. должен отображаться для #foo. С другой стороны, если неразделенный браузер Javascript или поисковый робот попытаются получить доступ к странице example.com # foo , будет возвращена домашняя страница.

Я использую библиотеку SWFaddress ( http://www.asual.com/swfaddress/ ) для глубинных ссылок.


Править

Спасибо, ребята. Раньше я не думал об использовании .

Вот что я решил сделать. PHP по умолчанию загружает такие страницы, как example.com или example.com # foo (что по сути то же самое, что example.com с точки зрения PHP поскольку фрагменты по определению не отправляются на сервер) пустой (просто визуальный шаблон) с тегом

Еще раз спасибо. Думаю, это довольно простое и элегантное решение. Если у вас есть дополнительные предложения, оставьте комментарий или другой ответ.

5
задан Michael Gaskill 23 May 2016 в 21:10
поделиться