Получаем информацию о пользователе

Тот, кто наблюдает за развитием Интернет-пространства, наверняка заметил, что сайты становятся больше, ярче и функциональнее. И подчас обилие функций и заставляет нас – дизайнеров и веб-разработчиков – перекладывать решение многих вопросов на пользователей. А это, несомненно, отвлекает их от основной цели посещения сайта.


8348989885_e6ed96e478 (1)

Сайт Johan Larsson

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

Тем не менее, чаще всего мы по-прежнему просим пользователей предоставить нам некоторую информацию: язык, часовой пояс, страну. А ведь этого можно избежать. Давайте рассмотрим основные секреты того, как определить местонахождение пользователя, не отвлекая его от просмотра сайта.

Язык

Наиболее распространенный способ определения языка пользователя — это функция  Accept-Language, которая прописывается в HTTP. Конечно, существует  window.navigator.language на JavaSkript, но этот способ менее надёжен, особенно в условиях кроссбраузерности. Отметим, что оба способа оставляют пользователю возможность самостоятельно изменить язык.

Страна или регион

HTML5 geolocation – отличный инструмент для определения текущего местонахождения пользователя. Но, работает он лишь в том случае, если у юзера установлен современный браузер.

Если вам нужна информация только о том, в какой стране или на каком континенте находится пользователь, то вам помогут инструменты MaxMind и IpInfoDB, которые определяют местонахождение посетителей сайта по их IP. Такой способ удобен тем, что вся информация поступает напрямую на сервер сайта, не отвлекая пользователя. Если же вы используете HTML5 geolocation, то посетитель будет терять время на перезагрузку просматриваемой страницы.

Но, в то же время, HTML5 geolocation более предпочтителен для сайтов, оптимизированных под мобильные устройства, особенно если пользователь находится в роуминге. Как вы понимаете, механизмы определения местонахождения пользователя по IP в данном случае бессмысленны.

Часовой пояс

JavaScript предлагает отличный инструмент Date.getTimezoneOffset(), который моментально вычисляет разницу во времени между Гринвичем и местным временем пользователя. Но, тем не менее, я бы порекомендовал дополнительно использовать библиотеки jsTimezoneDetect, так как в некоторых странах может возникнуть путаница с летним и зимним временем. jsTimezoneDetect очень надёжны и просты в использовании.

прежде, чем обратиться к пользователю…

…задайте себе следующие вопросы:

  1. Могу ли я выяснить нужную информацию при помощи технических средств?
  2. Достаточно ли настроек сайта по умолчанию?
  3. Каковы последствия получения неверной информации?

Последний вопрос представляется мне наиболее важным. Что, если был неверно определён часовой пояс, в котором находится пользователь? Всё зависит от того, зачем вам эта информация.

Если она нужна для отправки ежедневной рассылки, то ничего страшного не произойдёт. А вот если вам необходимо точно рассчитать время доставки товара, опираясь на информацию о том, когда был оставлен заказ, то последствия ошибки могут быть более серьёзными. В этом случае не стоит полагаться только на технические средства.

Всякий раз, когда вы определяете что-либо, тщательно взвешивайте важность информации. Иногда стоит запрашивать какие-то данные у посетителей сайта, чтобы избежать неприятных ситуаций.

конкретный пример: сайт UPS

Как же все это работает на практике? Рассмотрим самую распространённую ошибку и одно из её …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.