Определить размер экрана и плотность пикселей на стороне сервера? - PullRequest
6 голосов
/ 29 сентября 2011

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

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

Пока чтоЯ не нашел ничего, что говорит, что это даже возможно, но я подумал: а почему бы не спросить?

Ответы [ 4 ]

9 голосов
/ 30 марта 2012

Я не совсем согласен с приведенным выше правильным ответом. Реально этот ответ является правильным во многих случаях ... но теоретически это не так. Часто запросы к веб-серверу содержат поле User-Agent, которое теоретически может использоваться для определения информации о разрешениях и свойствах экрана устройства.

Веб-запросы не проходят через клиента в первую очередь. Они передаются на сервер, который затем передает страницу клиенту, поэтому сервер сначала получает запрос ... Например, Ruby on Rails получает запрос через контроллер действий к ресурсу, а затем передает страницу ответу.

Посмотрите на пример синтаксического анализатора UA, например: https://github.com/visionmedia/user-agent

Пример агента пользователя, отправляемого моим компьютером:

  User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.11 (KHTML, like  enter code here`Gecko) Chrome/17.0.963.83 Safari/535.11

Я думаю, что вполне возможно сделать правильное предположение о том, какое разрешение экрана (DPI и т. Д.) Мне дает эта информация через сервер. Вам, конечно, понадобится таблица информации об устройстве для справки.

Для мобильных устройств это становится еще проще. Если пользователь-агент - мобильное сафари для iPad:

  Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML,   like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10

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

Итак, в итоге, я согласен, что делать это нецелесообразно, но я также не согласен.

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

2 голосов
/ 11 мая 2013

Для чего-то, что невозможно, похоже, что Mobvious делает достойную работу:

Mobvious определяет, осуществляется ли доступ к вашему приложению / веб-сайту телефон, или планшет, или персональный компьютер. Вы можете использовать эта информация в вашем приложении. (Например, раскройте свой код переднего плана относительно типа устройства. Существует плагин для Ruby on Rails, который поможет вам в этом.)

https://github.com/jistr/mobvious

0 голосов
/ 31 марта 2015

Вы можете использовать Ахой .Метод current_visit содержит следующую информацию.

Когда кто-то посещает ваш сайт, Ahoy создает посещение с большим количеством полезной информации.

источник трафика - реферер, ссылающийся домен, целевая страница,search
ключевое слово location - страна, регион и город, технология - браузер, операционная система и тип устройства
utm параметры - источник, среда, термин, контент, кампания

0 голосов
/ 29 сентября 2011

Ruby работает на стороне сервера - без получения информации от клиента у него нет возможности узнать какие-либо клиентские возможности.

...