【问题标题】:PHP if statement based on screen size [duplicate]基于屏幕大小的PHP if语句[重复]
【发布时间】:2014-10-23 18:10:43
【问题描述】:

我有兴趣使用 php if 语句根据用户的浏览器大小来包含或排除代码。例如,仅当用户的浏览器尺寸大于 768 x 900 像素时才会加载滑块。

我知道如何使用 css 视口隐藏对象,但我想如果我根本不加载代码而不是隐藏它,页面速度会提高。

几个问题让我更好地理解

1) PHP 是否能够检测用户的浏览器大小?
2) if 语句是实现这一目标的可行方法吗?
3) 我是否正确地假设不完全加载代码比仅通过 css 隐藏输出更有效?
4)我还没有开始学习javascript,你会推荐它作为实现这一目标的最佳方法吗?

非常感谢任何帮助!

【问题讨论】:

  • 1) 不,您需要使用客户端 javascript 来读取屏幕尺寸并将该信息发送到 PHP,并注意用户随后更改其屏幕尺寸
  • 2) 并非如此,无论如何,在客户端浏览器上使用 javascript 更好地处理隐藏/调整大小/等
  • 3) 并非如此,与使用 css/js 隐藏它的客户端上可忽略的开销相比,您在浏览器和服务器代码中添加了大量开销以查看它是否值得显示
  • @MarkBaker 2) 到底谁在使用 JavaScript 进行屏幕尺寸检测?使用媒体查询!
  • 4) 是的,我会推荐学习 js

标签: javascript php jquery if-statement viewport


【解决方案1】:
  1. PHP 无法检测用户的浏览器大小。 PHP 甚至在用户出现之前就被执行,因为它在服务器上。

  2. ...

  3. 如果您有大量代码,那么是的,它可能更有效,但单个滑块不应该产生如此大的差异。我建议只加载它,然后通过 CSS 隐藏。

  4. 正如我在上面的要点中提到的,CSS 将比 JavaScript 更有效。只需使用@media 查询:

    @media (min-width: 768px) and (min-height: 900px) {}
    

【讨论】:

  • 感谢您的澄清,谢谢。
【解决方案2】:

如果要检测客户端的屏幕大小,PHP 帮不了你,javascript 和 CSS 可以。

如果你关心速度,javascript 和 CSS 帮不了你(即使它被缩小了),PHP 可以。

我的建议是,当客户第一次访问您的网站时,使用 CSS 检测他们的屏幕尺寸,然后将其保存在数据库中并设置与之对应的 cookie/会话。

此解决方法的问题是客户端在 cookie 过期或会话结束之前更改其屏幕大小。

【讨论】:

  • 即使是像将浏览设备从横向变为纵向(反之亦然)这样简单的事情也会导致问题
猜你喜欢
  • 2011-11-16
  • 2013-03-25
  • 2013-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 1970-01-01
相关资源
最近更新 更多