提出問題:
bootstrap-table 可以根據ajax地址load的json數據。這個json數據一般就是數據庫中查詢的結果,而數據庫中存放的數據一般不是用戶友好的,比如數據表示一般使用簡潔id或者英文,而將數據的具體定義放在其他位置。
舉個例子:
表格1: ***,**** ,類型id
表格1數據達到幾萬行,而數據中,類型id是個數字,類型id的解釋意義在其他表格中存放,一共只有三個類型。
如果我們直接載入表格1數據,那么在前端展示中,顯示的類型id是一串數字,顯然是不友好的。
解決這個問題的辦法有以下幾種:
1.在客戶端定義對類型id的解釋,某個id對應某個中文名稱,這個對應關系實際就是數據庫中的對應關系,但是由於這邊類型只有幾種,可以在代碼中寫死,不需要重新查詢數據庫。
優點:簡單容易實現,不占用網絡流量
缺點:代碼寫死,以后存在數據庫中類型增刪同時需要修改這部分代碼。如果這樣的代碼一多,維護成為一件非常可怕的事情。
2.在服務端就將返回數據替換為顯示的格式與意義。這個數據庫查詢時候直接獲取,在服務器里面修改代碼就可以實現
優點:客戶端直接顯示即可,簡單
缺點:占用流量變大,一個字節的內容變為多個字節。
3.將類型id這種數據單獨使用ajax查詢獲取數據,在客戶端獲取對應關系
優點:占用流量小,代碼集中,具備自適應性來應對未來的數據改變
缺點:客戶端需要增加一個ajax查詢,由於該查詢是的數據量非常小,也會很快。
綜上所述:
我認為第三種方法最好,這個不但可以將表現與具體數據分隔開,使得展示的代碼更加集中易於修改。並且占用網絡流量也不多。
注意:
請求表現格式的代碼不能直接放入data-formatter中,這樣做的話,會導致每讀一行都會請求表現數據,這個數據可以放在全局變量里面進行復用,或者放在jquery等閉包中。