2013-10-11 47 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時,我可以假設客戶端有什麼特徵?