我们即将推出我们网站的移动版本。我们的完整网站和移动网站只是在主题上不同,即URL是相同的,只是前端的不同。
当用户访问我们的网站时,我们需要做到以下几点:
1.检查cookie (移动==真或假),以确定是否已经定义了完整的或移动的首选项(通过用户手动或在我们的终端检测)。
2.如果没有设置移动cookie,则在第一页视图中检测用户的设备,并将移动cookie设置为true或false。
3.基于#1和/或#2的结果,提供适当的体验,无论是完整的还是移动的。
最初,我使用PHP来检测工作正常的设备。但是,我们的站点使用主页和其他页面上的完全HTML缓存(.html文件被写入我们web根目录中的一个文件夹中,如果Nginx发现了它们,而不是通过page进行的请求-每15分钟清除一次),所以我不能依靠PHP从用户入口的主要点(据我所知)从用户入口的主要点检测移动设备。
由于不能依赖PHP,然后我将移动cookie检查和设备检测放在Nginx配置文件中(在开发过程中,Apache在本地进行,由我们的服务器人员为Nginx翻译)。然而,我们的服务器管理人员回复说,新的Nginx配置文件对性能的影响很大(而“性能命中”在我们的办公室是一个4个字母的词)。
基本上,我被告知主页的完整HTML缓存必须保持在原处,而且我根本不能更改配置文件。考虑到上面的限制,是否还有另一种检测cookie/设备的方法?
发布于 2011-09-22 21:21:41
你可以使用javascript。
试试这个:http://detectmobilebrowsers.com/
发布于 2011-09-22 21:26:27
我以前在CSS媒体查询和JavaScript中使用过这个巧妙的技巧.
就在您的站点关闭<body>标记之前:
<div id="mobiledetect" style="display: none;"></div>在CSS文件中:
@media screen and (max-device-width: 768px) {
#mobiledetect {
text-transform: uppercase;
}
}在您的JavaScript文件中(依赖于jQuery,但可以修改它):
$(function() {
$is_mobile = false;
if($('#mobiledetect').css('text-transform') == 'uppercase') {
$is_mobile = true;
}
});https://stackoverflow.com/questions/7496118
复制相似问题