使用PHP和/或JavaScript的iPhone4视网膜显示检测

| 我正在创建一个检测脚本,当用户到达我的站点时,该脚本会嗅探任何带有视网膜显示屏(或类似设备)的设备(目前只有iPhone4)。因为分辨率更高,所以我需要推高分辨率的图像/图形。我可以找到的唯一解决方案(使用PHP和JavaScript)是检测ѭ0并设置cookie。这是我正在使用的代码:
<?php
    $imgPath = \"images/\";
    if(isset($_COOKIE[\"imgRes\"])){
        $imgRes = $_COOKIE[\"imgRes\"];
        if( $imgRes  >= 2 ){
            $imgPath = \"images/highRes/\";
        }
    } else {
?>
    <script language=\"javascript\">
        var the_cookie = \"imgRes=\"+window.devicePixelRatio+\";\"+the_cookie;
        document.cookie = the_cookie;
        location = \'<?=$_SERVER[\'PHP_SELF\']?>\';
    </script>
<?php
    }
?>
有没有人遇到过更好的方法或有任何建议来改进此脚本。这个脚本确实有效,只是感觉很脏。     
已邀请:
您可以使用此处所述的CSS3媒体查询,但这只能让您在客户端添加其他CSS规则,而不能在服务器端调整图像路径。这对于静态图像数量有限的网站非常有效。     
Brian Cray的回答似乎是错误的。 在javascript中执行此操作的正确方法是:
var retina = window.devicePixelRatio && window.devicePixelRatio >= 2;
    
当我需要添加对站点上的视网膜显示的支持时,我实施了一个“技术含量低”的解决方案: 我将所有图像的尺寸加倍,并将它们设置为显示尺寸的50%。 不幸的是,这意味着每台设备即使不支持它们也都在加载高分辨率图像,但是我没有太多可担心的图形,因此这对我来说是一个很好的解决方案。     
Brian Cray有一个单行JavaScript答案: http://briancray.com/2011/05/05/detect-retina-displays-with-javascript/ 很简单:
var retina = window.devicePixelRatio > 1 ? true : false;
    
我有一种使用脚本的技术来对正确图像进行单一请求的技术,当没有可用的javascript时,该技术会恢复为默认设置。 将图片放在

要回复问题请先登录注册