我正在使用Codeigniter,我注意到使用用户代理库我们可以知道用户设备是否是移动设备。基于此,我们可以使用相同的 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 放在相应的视图中即可。
- 我们不必跟踪移动用户的异常,例如触摸事件或类似事件。
- 我们可以加载比桌面设备更小的图像。因为屏幕尺寸更小。
这些是我意识到的优点。但是缺点呢?使用这种做法是否有任何问题或问题?
以下是不使用它的原因 - 即使库运行良好 - 新设备总是会出现。如果设备无法识别 - 那么他们正在获得全屏版本。
即使您有一个团队并且每个设备都被识别 - 您正在为同一页面创建两个不同的内容资源。这意味着随着您的内容和资源的变化 - 您必须在两个不同的地方更改它。这存在搜索引擎问题。
所有这些问题都是前端响应式库如此受欢迎的原因 - 它们解决了这些问题,并使您的网站内容在平板电脑上更好地工作。 Twitter Bootstrap是迄今为止最受欢迎的。http://getbootstrap.com https://github.com/twbs/bootstrap
请注意,如果你去了解更多关于 Twitter 引导程序的信息,Bootstrap 2 和 Bootstrap 3(最新版本(之间存在重大变化。
缺点是: 文档很糟糕。
- 对于我这个CodeIgniter新手来说,目前还不清楚
$this
指的是什么。 - 究竟什么是移动设备?
- 哪些移动设备是已知的?
- 我必须向函数传递什么参数才能测试特定的移动设备?
- 我已经看到
'iphone'
已传递给示例中的函数。这是否包括所有iPhone,还是仅在编写函数时可用的iPhone? - 当函数返回
true
时,我可以假设客户端的哪些特征?