gpt4 book ai didi

ruby-on-rails - 在服务器端检测屏幕尺寸和像素密度?

转载 作者:数据小太阳 更新时间:2023-10-29 07:03:38 25 4
gpt4 key购买 nike

我一直在做一些研究,我想我已经知道答案了,但我想知道是否有任何方法可以在不使用 javascript 或依赖 CSS3 媒体的情况下获得设备的屏幕尺寸和像素密度查询。

本质上,我正在研究如何获取屏幕分辨率和像素密度,以便服务器可以决定在 URI 请求中为服务器提供哪个图像。

到目前为止,我还没有发现任何证据表明这是可能的,但我想嘿,为什么不问问呢?

最佳答案

我不完全同意上面的正确答案。实际上,这个答案在很多情况下都是正确的……但理论上并非如此。通常向 Web 服务器发出的请求包含一个 User-Agent 字段,从理论上讲,该字段可用于识别有关设备屏幕分辨率和属性的信息。

Web 请求不会首先通过客户端。它们传递给服务器,然后服务器为客户端提供页面,以便服务器首先获取请求……例如,Ruby on Rails 通过 Action Controller 接收对资源的请求,然后为响应提供页面。

查看示例 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 的移动 safari:

  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 移动应用程序时遇到了类似的问题,例如他们必须对所有移动浏览器渲染器之间的所有差异进行分类,以便他们可以针对每个案例定制客户端应用程序。也许那个项目可能有必要的信息来做到这一点……理论上。

关于ruby-on-rails - 在服务器端检测屏幕尺寸和像素密度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7596769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com