{hero}

deferLoading

自:DataTables 2.1 起

延遲伺服器端資料的載入,直到第二次繪製。

描述

當使用伺服器端處理時,DataTables 的預設操作模式是簡單地丟棄表格中目前存在的任何資料,並向伺服器發出請求以取得要顯示的第一頁資料。 這對於空表格來說沒有問題,但是如果您已經在純 HTML 中顯示了第一頁資料,那將是資源的浪費。 因此,此選項的存在是為了讓您指示 DataTables 不要發出初始請求,而是使用頁面上已有的資料 (不會對其應用排序等)。

deferLoading 用於指示需要延遲載入,但也用於告訴 DataTables 完整表格中有多少筆記錄(允許正確顯示資訊元素和分頁)。 如果在初始載入時對表格應用了篩選,則可以透過將參數作為陣列給定來指示,其中第一個元素是篩選後可用的記錄數,第二個元素是不應用篩選的記錄數(允許正確顯示表格資訊元素)。

請注意,此選項僅在啟用 serverSide 時才會生效。 當使用客戶端處理時,它不會有任何效果。

此外,在許多情況下,此選項將無法運作。 例如,狀態儲存、預定義的篩選、SearchPanes 和 SearchBuilder 等擴充功能等等。 除非用於填充表格初始 HTML 的邏輯與 DataTables 填充要顯示的資料的方式完全匹配(例如排序和搜尋),否則它將無法運作。 不支援此類用例。 如果您需要使用任何這些功能,請停用此選項。

除非您真的需要此選項提供的行為並知道它對您正在使用的其他模組的影響,否則強烈建議您不要使用它!

類型

整數

描述

當作為整數給定時,這會啟用延遲載入,並指示 DataTables 完整資料集中有多少個項目。

陣列

描述

作為陣列,這也會啟用延遲載入,其中第一個資料索引告訴 DataTables 篩選結果集中有多少列,第二個資料索引告訴不套用篩選的完整資料集中有多少列。

預設值

  • 值:null

範例

表格中有 57 筆記錄可用,未套用篩選

new DataTable('#myTable', {
	ajax: '/api/data',
	deferLoading: 57,
	serverSide: true
});

篩選後有 57 筆記錄,未篩選有 100 筆記錄(套用了初始篩選)

new DataTable('#myTable', {
	ajax: '/api/data',
	deferLoading: [57, 100],
	search: {
		search: 'search string'
	},
	serverSide: true
});

相關

以下選項直接相關,可能在您的應用程式開發中也很有用。