php根据浏览器宽度加载可变php文件


php to load variable php file depending on the browser width

Hi我目前正在使用jQuery根据浏览器宽度加载可变php布局。

function setLocation(url) {
   if (window.location.href.indexOf(url) === -1)
      window.location = url;
}
function reloadPage(width) {
    width = parseInt(width);
    if (width < 701) {
        setLocation("yournarrowpage.php");
    } else if (width < 900) {
        setLocation("yourmediumpage.php");
    } else {
        setLocation("yourwidepage.php");
    }
}
$(function() {
   reloadPage($(this).width());
   $(window).resize(function() {
       reloadPage($(this).width());
   });
});

只需要php就可以实现这一点吗?

如果是,如何?请帮忙。

当我可以简单地用CSS重新排列布局时,我为什么要这样做

我不想使用CSS属性#div { display:none },因为问题是我的布局加载了很多图像、javascript和小部件。

我甚至尝试了响应式布局,但不幸的是,一些图像细节在小屏幕上几乎看不见。

使用css属性display:none,仍然会加载未显示的内容,浪费大量带宽。比方说,移动浏览器加载1.5 MB的网站,然后隐藏1.2 MB????这可能不是个好主意。

对于较小的浏览器,这些小部件将没有任何意义,因此我想加载一个更轻的版本。

这就是我的想法。如果我错了,请随时纠正我,因为我在编程方面还是个新手,还处于学习阶段

将CSS媒体查询和javascript结合起来,以防止加载不想加载的较大项目/区域。。。

if ($('window').width() > 1000) {
 // load your full functions and stylesheet 
}
if ($('window').width() < 1000) {
 // load your narrow functions and stylesheet 
}

我最近用类似的方法组合了css媒体查询,然后添加了动画来帮助减少转换的痛苦。。很不错。

在PHP中尝试这样做的问题是,您无法从web服务器中判断客户端宽度,这意味着您必须查看请求标头。

有一个库可以帮助在谷歌代码上使用PHP进行设备检测。

最后是一两句警告。你需要让这个脚本保持最新,这样它才能继续工作。它用来判断设备是什么的方法属于"浏览器嗅探"的旗帜下,它依赖于浏览器通过某些标头发送,这些标头在以后的版本/新浏览器中可能会发生变化。此外,大多数时候,你只是不想强迫移动用户查看你网站的移动版本,所以如果你决定以这种方式实施,请让人们可以选择在手机上查看正常网站。

PHP只向客户端输出文本。它对客户一无所知,客户没有告诉它

我说的是客户端,因为不能保证启动对PHP脚本的请求的软件甚至是浏览器。

您已经排除了CSS,但老实说,如果您不想使用javascript,那么它是您唯一的其他选择。CSS3中的选择器非常强大,您可以使同一页面在不同的浏览器宽度下看起来完全不同。