难题 - 需要以PHP(或其他任何方式)获取视口大小

时间:2013-04-05 17:17:46

标签: php javascript viewport

基本上,我目前有一个用javascript编写的网站,但我决定主要用PHP重写。我正在替换的主要位使用spry将xml数据集中的值读入javascript变量。

使用mySQL的PHP​​可以很容易地处理我正在使用的工作,但是我想在服务器端创建脚本的另一部分。

目前正在进行的是,当页面加载时,我的函数决定图片的大小,以及因此在服务器上获得的大小。有五个不同大小的文件,它选择最小的文件,它不需要升级(但它可以缩小)。它将它与spry中的一些信息结合起来,并设置img元素的src,这是以前没有设置的(这是我讨厌当前设置的一部分)。

我已经完成了我的谷歌搜索,我知道问题 - PHP解析服务器端,此时它无法知道屏幕大小。

我可以不用 - 我会保留现有的javascript用于此任务,这有​​点不稳定,或者只使用一个尺寸的图片,这会让我的网站不那么好。

我只是想知道是否有任何专家因为让PHP决定嵌入哪个图像而有一个技巧。我猜测浏览器在第一次请求网站时没有发送任何内容..这会在我的谷歌搜索中显示出来..

我应该提一下,除了一个简单的东西,我没有做任何PHP,我的网站的所有页面上都有一个标签栏,我使用php将其带入并更改所选标签的外观。

2 个答案:

答案 0 :(得分:2)

实际上有一种更简单的方法可以做到这一点。您可以设置css媒体查询,以根据视口宽度加载不同的图像。

PHP对客户端了解不多。获取视口大小等信息很困难。

答案 1 :(得分:0)

您有几个选择:

选项1:输出一个简单的页面,其中包含一些获取浏览器规范的JS,然后进行重定向,将这些规范作为查询参数传递。 e.g。

http://example.com/stage2.php?x=1024&y=768

然后,这个stage2脚本可以根据传递的规范构建真实页面。

选项2:使用一些AJAX延迟加载。页面的主要内容获取规范,通过AJAX调用将它们传回,响应是HTML的其余部分,经过调整以反映这些规范。 e.g

$('#body').load('example.com?x = ' + window.width + ......);