问题 移动检测高流量站点


我有一个高流量的网站(每天超过1百万的访问者),我需要检测他们的用户代理。我有一个超过1000个移动设备的列表。

我运行memcache根据他们访问的页面和他们放置的参数输出动态内容,例如:

/文件/页/ 1?TEXTSIZE =大

我没有静态页面,也不能使用子域名。

我找到了检查用户代理的不同脚本:

http://www.mobile-phone-specs.com/user-agent-browser/0/

http://detectmobilebrowsers.mobi/

http://detectmobilebrowsers.com/

我的问题是,每次页面加载时都会执行这些检查,这会使我的网站速度变慢

编辑: 我需要知道我的PHP代码是否是移动或不是浏览器。

我怎样才能让这个检查更快地运行?


4446
2017-12-14 16:20


起源

为什么不在他们最初访问网站时执行检查,然后设置一个会话变量来存储他们应该看到的版本? - Josh
@Josh好主意,但我仍然需要寻找数百个设备,这会让它变慢吗? - aki
@ yes123你有兴趣吗? - aki
我想yes123不感兴趣! - aki
我将添加乔什所说的:1)寻找常见设备(如 iphone 要么 android 要么 samsung 例如),不要查看每个特定的,然后当您检查设备时,检查哪一个作为您网站的更多流量,这样您将有更多机会立即获得正确的设备并花费更少的时间preg_matching用户剂。 - Book Of Zeus


答案:


使用上面的所有答案。

使用CSS正确显示您的页面。因为它的唯一显示让浏览器加载处理它。只是要小心css / js / images / html页面的大小,对于慢速设备,可能需要永远加载不加载图像或大js文件的页面(如旧翻盖手机,你可以看到s ** t在上面)

在您的PHP上使用逻辑脚本找出您获得的最多浏览器然后将其保存在会话中,这样您就不必每次都检查它。

就像是:

if(!$_SESSION['var']) {
  if(stripos($_SERVER['HTTP_USER_AGENT'], 'iphone') !== FALSE) {
    $_SESSION['var'] = 'iphone';
  }
  // etc...
  // your else case can be desktop or default.
}

12
2017-12-15 03:37





在您的情况下,我会使用响应式设计和css策略将移动检测外包给客户端......从您的服务器中解除所有处理流量负载的开销。

CSS3媒体查询 如今,覆盖​​移动特异性的样式是一种非常流行的方法。

http://webdesignerwall.com/tutorials/css3-media-queries

示例站点  - 开始收缩浏览器以查看其运行情况。


3
2017-12-14 16:22



这将工作,谢谢,而且,(我没有提出我的请求)在我的PHP代码我该怎么办? - aki
出于什么目的? - jondavidjohn
主要是统计数据,但也不允许下载.exe文件或不兼容的文件。 - aki
只提供您不希望移动浏览器看到的链接/元素,a .no_mobile 类,然后在您的移动设备部分,只是 .no_mobile { display:none } - jondavidjohn
这将解决不需要的链接,但不会解决统计数据 - aki