2013-10-11 22 views
0

我使用Codeigniter,我注意到使用User agent library我们可以知道用户设备是否是移动设备。基于此,我们可以使用相同的url加载一个或另一个视图。事情是这样的:移动设备负载特定视图的优缺点

$this->load->library('user_agent'); 
$data = array (
    //some data 
); 
if (!$this->agent->is_mobile()) { 
    $this->load->view('test_view',$data); 
} 
else { 
    $this->load->view('test_view_mobile',$data); 
} 

那么,它完美的作品,并使用此:

  • 我们没有把CSS媒体查询。只需将mobile CSS放入corespondient视图即可。
  • 我们无需追踪移动用户的例外情况,例如触摸事件或类似情况。
  • 我们可以加载比桌面设备小的图像。因为屏幕尺寸较小。

这些是我认识的优点。但是缺点呢?使用这种做法是否存在问题或问题?

回答

2

下面是不使用它的原因 - 即使图书馆工作完美 - 新设备一直出现。如果设备不被识别 - 那么他们正在获得全屏版本。

即使您有一个人的团队,并且每个设备都被识别 - 您正在为同一页创建两个不同的内容资源。这意味着随着您的内容和资源的变化 - 您必须在两个不同的地方进行更改。并且存在搜索引擎问题。

所有这些问题都是前端响应式库如此流行的原因 - 它们处理这些问题并使您的网站内容在平板电脑上更好地工作。 Twitter Bootstrap是迄今为止最受欢迎的。 http://getbootstrap.comhttps://github.com/twbs/bootstrap

请注意,如果你去了解更多关于Twitter的引导有引导2之间重大更改和引导3(最新版本)

-1

缺点是:文件很烂。

  • 对于我作为CodeIgniter新手,目前还不清楚$this是指什么。
  • 究竟是什么移动设备
  • 哪个移动设备是已知
  • 我必须通过什么参数才能测试特定移动设备的功能?
  • 我见过'iphone'已被传递给示例中的函数。这包括全部是 iPhone还是只有在写入该功能时可用的iPhone?
  • 当函数返回true时,我可以假设客户端有什么特征?