伺服器端處理
DataTables 提供伺服器端處理選項,以處理大型資料集。為了能夠在客戶端顯示所有篩選選項,SearchPanes 需要與伺服器端處理進行特殊整合。自 SearchPanes 1.1 起已提供此支援。
客戶端
在客戶端,與伺服器端處理一起使用時,SearchPanes 不需要特殊的設定(除了使用 serverSide
啟用伺服器端處理之外)。
伺服器端
函式庫
我們使用 Editor 伺服器端函式庫提供 SearchPanes 伺服器端處理整合。這些函式庫是開源的,不需要 Editor 授權即可運作。它們可以提供一種快速查詢資料庫並傳回 DataTables 和 SearchPanes 所需資訊的方法。我們支援的平台的完整文件可在此處取得
請注意,DataTables 範例可用的示範 ssp.class.php
檔案不支援 SearchPanes。
還值得注意的是,目前 SearchPanes 中的伺服器端處理(serverSide
)不支援自訂窗格。
實作細節
傳送的參數
使用伺服器端處理向伺服器發出請求時,SearchPanes 除了 伺服器端手冊 中記載的參數之外,還會傳送以下資料,以讓伺服器知道需要哪些資料
參數名稱 | 類型 | 描述 |
---|---|---|
searchPanes |
物件 |
此物件為每個已選取的欄位保留一個屬性。該屬性反過來保留一個字串陣列,其中填入該字串的選取項目。 |
searchPanes[field] |
物件 |
索引物件,其中保留了在該窗格中所做的所有選取項目。當 field 是選取項目所在的欄位名稱時,就會是這種情況。物件的鍵是選取項目的索引,而對應的值是該選取選項的字串值。 |
傳回的資料
一旦 DataTables 發出資料請求,並將上述參數傳送至伺服器,它會期望傳回 JSON 資料,其中包含 searchPanes 的以下參數,以及 伺服器端手冊 中記載的參數
參數名稱 | 類型 | 描述 |
---|---|---|
searchPanes.options[field][i] |
陣列 |
此陣列包含給定欄位 SearchPane 中記錄所需的所有資料。 |
searchPanes.options[field][i].label |
字串 |
這是要在 SearchPane 選項中顯示給使用者的值。 |
searchPanes.options[field][i].value |
字串 |
這是要在 SearchPane 選項中用於篩選、排序和搜尋的值。 |
searchPanes.options[field][i].total |
整數 |
這是此值在給定欄位中的條目總數。 |
searchPanes.options[field][i].count |
整數 |
這是給定欄位中符合目前 where 條件的條目計數。 |
以下顯示如何使用這些選項傳回範例。
"searchPanes":{
"options":{
"users.first_name":[
{
"label":"Aaron",
"total":"1",
"value":"Aaron",
"count":"1"
},
{
"label":"Alex",
"total":"1",
"value":"Alex",
"count":0
},
{
"label":"Alexa",
"total":"1",
"value":"Alexa",
"count":0
},
...
]
}
},
...