对移动设备加载特定视图的优缺点

时间:2013-10-11 22:20:26

标签: php codeigniter mobile media-queries user-agent

我正在使用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媒体查询。只需将移动css放在相应的视图中即可。
  • 我们不必跟踪移动用户的例外情况,例如触摸事件或类似内容。
  • 我们可以加载小于桌面设备的图像。因为屏幕尺寸较小。

这些是我所了解的专业人士。但是缺点呢?使用这种做法有问题或问题吗?

2 个答案:

答案 0 :(得分:2)

以下是不使用它的理由 - 即使库完美运行 - 新设备也随时出现。如果设备无法识别 - 那么他们将获得全屏版本。

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

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

请注意,如果您去了解有关twitter bootstrap的更多信息,则bootstrap 2和bootstrap 3(最新版本)之间会发生重大变化

答案 1 :(得分:-1)

缺点是:文档很糟糕。

  • 对于我作为CodeIgniter新手,我不清楚$this指的是什么。
  • 移动设备究竟是什么
  • 哪些移动设备已知
  • 我必须将哪个参数传递给测试特定移动设备的函数?
  • 我看到'iphone'已传递给示例中的函数。这是否包括所有 iPhone或只是编写函数时可用的那些?
  • 当函数返回true时,我可以假设客户端有什么特征?