2011-09-29 13 views
6

He estado investigando algo y creo que ya sé la respuesta, pero me pregunto si hay algún medio para obtener el tamaño de pantalla y la densidad de píxeles de un dispositivo sin el uso de javascript o confiando en las consultas de medios de CSS3. .¿Detecta el tamaño de la pantalla y la densidad de píxeles en el lado del servidor?

Básicamente, estoy investigando qué se necesitaría para obtener la resolución de pantalla y la densidad de píxeles para que el servidor pueda decidir qué imagen a servidor en una solicitud de URI.

Hasta ahora no he encontrado nada que diga que esto sea posible, pero pensé, ¿por qué no preguntar?

Respuesta

0

Ruby se ejecuta en el lado del servidor: sin obtener información del cliente, no tiene forma de conocer las capacidades de ningún cliente.

+0

Eso es lo que pensé. Estoy tratando de pensar en lagunas ahora. – dougoftheabaci

+1

No estoy seguro de que haya alguno, a menos que el cliente lo indique, no veo cómo, y eso significaría obtener información a través de JavaScript (probablemente). Es posible que * puedas * obtener una * minúscula cantidad de información a través del agente de usuario, pero eso es básicamente inútil. –

+0

Se agradecen los comentarios sobre los votos hacia abajo, especialmente sobre las respuestas correctas. Determinar el tamaño y la densidad de la pantalla depende necesariamente de la información del cliente, esto es indiscutible. Obtener información * precisa * se presenta con dificultad –

9

No estoy de acuerdo con la respuesta correcta anterior. De manera realista, esta respuesta es correcta en muchos casos ... pero teóricamente no lo es. A menudo, las solicitudes realizadas a un servidor web contienen un campo de agente de usuario que, en teoría, se podría utilizar para discernir información sobre las propiedades y resoluciones de la pantalla del dispositivo.

Las solicitudes web no pasan primero por el cliente. Pasan al servidor, que luego sirve una página al cliente para que el servidor obtenga la solicitud primero ... Ruby on Rails, por ejemplo, recibe una solicitud a través de un controlador de acción a un recurso y luego sirve una página para la respuesta.

vistazo a un ejemplo UA analizador tales como: https://github.com/visionmedia/user-agent

Un agente de usuario muestra que está siendo enviado por mi equipo es:

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 

creo que es eminentemente posible hacer una buena conjetura lo que mi pantalla resolución (DPI, etc.) recibe esa información a través de un servidor. Por supuesto, necesitaría una tabla de información del dispositivo para referencia.

Para dispositivos móviles, es aún más fácil. Si el User-Agent es un Safari Mobile para 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 

Usted puede saber con certeza qué fuerte la resolución de la pantalla está en el servidor. Incluso puede conocer el alto y el ancho del navegador con esa información. Sospecho que lo mismo es cierto con muchos dispositivos móviles como Android o Win Mo.

Por lo tanto, en resumen, estoy de acuerdo en que es poco práctico hacer esto, pero tampoco estoy de acuerdo.

Creo que Facebook ha realizado un proyecto importante catalogando dispositivos y resoluciones de pantalla y lo ha convertido en código abierto porque se enfrentaron a problemas similares al crear la aplicación móvil de Facebook, p. tenían que catalogar todas las discrepancias entre todos los visualizadores de navegadores móviles para que pudieran adaptar la aplicación cliente a cada caso individual. Tal vez ese proyecto podría tener la información necesaria para hacer esto ... en teoría.

+1

Entonces, ¿está ejecutando OSX en cualquiera de los siguientes, 3-4 MBP y dos computadoras de escritorio con un tamaño de monitor arbitrario? Y no es mucho más fácil en dispositivos móviles a menos que esté ejecutando un dispositivo iOS. Meh. –

2

Para algo que es imposible que parece Mobvious hace un trabajo decente:

Mobvious detecta si su aplicación/sitio web está accediendo a un teléfono , o una tableta, o mediante un ordenador personal. A continuación, puede usar esta información en toda su aplicación. (Por ejemplo, teclee su código de front-end con respecto al tipo de dispositivo. Hay un complemento para Ruby on Rails que le ayuda con esto.)

https://github.com/jistr/mobvious

+1

Mobvious no mira el tamaño de la pantalla, solo el agente de usuario, la URL o las cookies. –

0

Usted podría utilizar Ahoy. El método current_visit contiene la siguiente información.

Cuando alguien visita su sitio web, Ahoy crea una visita con mucha información útil sobre .

tráfico de origen - el referente, el dominio de referencia, página de destino, la búsqueda
palabra clave ubicación - país, región, y la tecnología de la ciudad - navegador, sistema operativo, y tipo de dispositivo
parámetros UTM - fuente, mediano plazo, el contenido, campaña

Cuestiones relacionadas