使用bootstrap-table等自動使用ajax地址載入數據的插件的數據設計建議

提出問題:

bootstrap-table 能夠根據ajax地址load的json數據。這個json數據通常就是數據庫中查詢的結果,而數據庫中存放的數據通常不是用戶友好的,好比數據表示通常使用簡潔id或者英文,而將數據的具體定義放在其餘位置。前端

舉個例子:

表格1: ***,**** ,類型idjquery

表格1數據達到幾萬行,而數據中,類型id是個數字,類型id的解釋意義在其餘表格中存放,一共只有三個類型。ajax

若是咱們直接載入表格1數據,那麼在前端展現中,顯示的類型id是一串數字,顯然是不友好的。數據庫

解決這個問題的辦法有如下幾種:

1.在客戶端定義對類型id的解釋,某個id對應某個中文名稱,這個對應關係實際就是數據庫中的對應關係,可是因爲這邊類型只有幾種,能夠在代碼中寫死,不須要從新查詢數據庫。json

  優勢:簡單容易實現,不佔用網絡流量bootstrap

  缺點:代碼寫死,之後存在數據庫中類型增刪同時須要修改這部分代碼。若是這樣的代碼一多,維護成爲一件很是可怕的事情。服務器

2.在服務端就將返回數據替換爲顯示的格式與意義。這個數據庫查詢時候直接獲取,在服務器裏面修改代碼就能夠實現網絡

  優勢:客戶端直接顯示便可,簡單閉包

  缺點:佔用流量變大,一個字節的內容變爲多個字節。spa

3.將類型id這種數據單獨使用ajax查詢獲取數據,在客戶端獲取對應關係

  優勢:佔用流量小,代碼集中,具有自適應性來應對將來的數據改變

  缺點:客戶端須要增長一個ajax查詢,因爲該查詢是的數據量很是小,也會很快。

 

綜上所述:

我認爲第三種方法最好,這個不但能夠將表現與具體數據分隔開,使得展現的代碼更加集中易於修改。而且佔用網絡流量也很少。

 

注意:

請求表現格式的代碼不能直接放入data-formatter中,這樣作的話,會致使每讀一行都會請求表現數據,這個數據能夠放在全局變量裏面進行復用,或者放在jquery等閉包中。

相關文章
相關標籤/搜索