Как я могу обнаружить мобильные устройства (и / или мобильные cookie) без сценариев (PHP) или конфигурации сервера (Nginx)? - PullRequest
4 голосов
/ 21 сентября 2011

Мы запускаем мобильную версию нашего сайта очень скоро. Наш полный веб-сайт и мобильный веб-сайт отличаются только темой, то есть URL-адреса одинаковы, разница только во внешнем интерфейсе.

Когда пользователь посещает наш сайт, мы должны иметь возможность делать следующее:

1. Проверьте cookie (мобильный == true или false), чтобы определить, было ли уже определено предпочтение для полного или мобильного (пользователем вручную или с нашей стороны).

2. Если мобильный cookie не установлен, определите устройство пользователя при первом просмотре страницы и установите для мобильного cookie значение true или false.

3. Подавайте соответствующий опыт, полный или мобильный, на основе результатов № 1 и / или № 2.

Изначально я использовал PHP для определения устройств, которые работают нормально. Тем не менее, наш сайт использует экстремальное полное кэширование HTML на домашней странице и на некоторых других страницах (файлы .html записываются в папку в нашем веб-корне и, если Nginx находит их, они обслуживаются вместо запроса, проходящего через PHP - кэш очищается каждый раз). 15 минут), поэтому я не могу полагаться на то, что PHP обнаружит мобильное устройство с нашей основной точки входа пользователя (насколько я знаю на данный момент ...).

Не имея возможности полагаться на PHP, я затем включил проверку файлов cookie для мобильных устройств и обнаружение устройств в файл конфигурации Nginx (для меня Apache локально для меня при разработке, переведенный нашим сервером на Nginx). Однако наши менеджеры по работе с серверами вернулись к нам, сказав, что снижение производительности из нового файла конфигурации Nginx будет большим (а «снижение производительности» - это слово из четырех букв в нашем офисе).

По сути, мне говорят, что полное кэширование на домашней странице HTML должно оставаться на месте, и я вообще не могу изменить файл конфигурации Nginx. Есть ли другой способ обнаружения файлов cookie / устройств, который я мог бы использовать с учетом указанных выше ограничений?

Ответы [ 2 ]

6 голосов
/ 23 сентября 2011

Вы можете использовать JavaScript.

Попробуйте это: http://detectmobilebrowsers.com/

2 голосов
/ 23 сентября 2011

В прошлом я использовал этот хитрый трюк с медиа-запросами CSS и JavaScript ...

Прямо перед закрытием вашего сайта <body> тег:

<div id="mobiledetect" style="display: none;"></div>

В вашем CSSfile:

@media screen and (max-device-width: 768px) {
  #mobiledetect {
    text-transform: uppercase;
  }
}

В вашем файле JavaScript (зависит от jQuery, но вы можете изменить его):

$(function() {
  $is_mobile = false;
  if($('#mobiledetect').css('text-transform') == 'uppercase') {
    $is_mobile = true;
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...