伺服器端處理

DataTables 提供伺服器端處理選項,以處理大型資料集。自 SearchBuilder 1.2.0 起,已支援伺服器端整合,允許在伺服器端處理之前,於用戶端建構複雜查詢。

用戶端

在正常運行的用戶端,當搭配伺服器端處理時,SearchBuilder 不需要特殊設定(除了使用 serverSide 啟用伺服器端處理之外)。

當加入 searchBuilder.preDefined 條件時,必須加入 SearchBuilder.Criteria 的兩個屬性。它們是 criteria.typecriteria.origData。這些會將條件要套用的資料類型和原始欄位名稱傳遞到伺服器端腳本。

伺服器端

函式庫

我們提供 SearchBuilder 伺服器端處理與我們的 Editor 伺服器端函式庫整合。這些函式庫是開放原始碼,不需要 Editor 授權即可運作。它們可以快速查詢您的資料庫並返回 DataTables 所需的資訊,同時還能根據 searchbuilder 查詢建構查詢。我們支援的平台完整文件可在此處取得

SearchBuilder 的伺服器端整合有兩個注意事項。首先,在用戶端通常使用 select 元素的地方,會改用 input 元素。這會大幅降低伺服器的負擔,顯著提高效能。其次,不支援自訂條件,因為這些需要自訂伺服器端條件,而不是可以在用戶端使用的條件。

實作細節

傳送的參數

當使用伺服器端處理向伺服器發出請求時,SearchBuilder 除了 伺服器端手冊 中記載的參數外,還會傳送所有需要的資料,以便伺服器知道要套用哪些搜尋查詢。SearchBuilder 傳送的資料格式與 searchBuilder.getDetails() 返回的格式相同,且用於定義預定義查詢。請參閱 searchBuilder.preDefined 文件以了解完整詳細資訊。該處記錄的資料結構儲存在 http 請求的 searchBuilder 標頭下。

返回的資料

一旦 DataTables 請求資料,並將上述參數傳送到伺服器,它就會期望返回 JSON 資料,這完全是 伺服器端手冊 中記載的內容。SearchBuilder 本身不需要伺服器的任何額外資料,它只是在用戶端套用其中定義的條件作為 where 條件,以便返回的資料與 SearchBuilder 的請求相符。