從 1.9 版升級至 DataTables 1.10
如同所有 1.x 版本的 DataTables,向下相容性是升級的主要目標。我們希望 DataTables 能簡單地融入您目前的網站,讓您能以最少的麻煩獲得新功能的好處。DataTables 的最新版本始終可以從下載頁面下載。
雖然大多數升級應該非常順利,但從 1.9 或更早版本升級 DataTables 到 1.10 時,仍有一些要點必須考慮(請參閱先前的更新說明以了解較早版本)。
建立 DataTables / API 存取
現在可以使用以下方式建立 DataTable:
$(...).dataTable()
,或$(...).DataTable()
兩者的差異在於,第一個會回傳一個 jQuery 物件,而第二個會回傳一個 DataTables API 實例。
舊的 API(以 fn
開頭的方法)仍然可以在 DataTables 1.10 中使用,以確保向下相容性,它們像以前一樣附加到 jQuery 物件上,但新的 API 得到了顯著改進,我鼓勵您嘗試使用它!
分頁
DataTables 1.10 顯著升級了 DataTables 的分頁控制項(請參閱pagingType
),其結果是舊的內建 two_button
分頁形式已被移除。
如果您正在使用 two_button
分頁控制項,並希望繼續使用(而不是使用 1.10 中的 simple
選項,它提供了相同的按鈕,但按鈕的類別名稱更一致),則可使用整合檔案。只需在載入 DataTables 之後,但在初始化您的表格之前,將此檔案包含在您的文件中,two_button
分頁將恢復為與 1.9 中完全相同的狀態(包括類別名稱等)。
伺服器端處理
為了與 DataTables 中選項和 API 的 camelCase 變更保持一致,伺服器端處理參數也已更新為更現代的形式(有關完整資訊,請參閱文件)。此變更是可選的,並且僅在有條件地啟用,以確保完全的向下相容性。
$.fn.dataTable.ext.legacy.ajax
可用於強制使用哪種模式。設為false
以使用現代架構,或設為true
以使用 1.9- 架構。預設值為null
以進行自動偵測。- DataTables 將根據是否使用
ajax
或sAjaxSource
來初始化表格,自動決定使用哪種形式的參數ajax
- 將使用現代架構sAjaxSource
- 將使用舊架構。
因此,如果您只是更新 DataTables 而不變更任何參數,則無需變更伺服器端腳本。
API 外掛程式
如果您正在使用任何 API 外掛程式,它們可能需要針對 1.10 進行更新,因為一些內部函式已變更 - 其中一些函式可能已被外掛程式使用。
本網站上的可用外掛程式都已更新,可以與 DataTables 1.10 正確運作,如果您正在使用這些外掛程式,它們將會直接導入。
已移除的功能
上述改進是透過移除 DataTables 1.9- 的三個功能而實現的,這些功能在 1.9 中已棄用,並計劃在 1.10 中移除。
fnRender
舊的 fnRender
選項提供了一種在建立儲存格時操作儲存格的方法。但是,它提供的參數清單令人困惑,並且在內部需要 DataTables 中的特定結構,這會導致效能問題。移除 fnRender
顯著提高了具有大型資料集的 DataTables 的效能,並且能夠將物件實例作為資料來源物件提供給 DataTables(例如 Knockout 可觀察物件)。
為了取代 fnRender
,可使用columns.render
和 columns.createdCell
選項,它們提供了更大的靈活性和更一致的介面。
bScrollInfinite
DataTables 1.9 透過 bScrollInfinite
選項顯示無限滾動網格的內建功能已被移除,因為它在 API 中導致不一致。移除也大幅簡化了內部程式碼。
為了取代 bScrollInfinite
,建議使用 DataTables 的Scroller 擴充功能。
基於 Cookie 的狀態儲存
在 DataTables 1.10 中,基於 Cookie 的狀態儲存已被基於 localStorage
的狀態儲存取代。Cookie 由於其 4KiB 的限制而非常有限,並且由於它們是每個 HTTP 請求的一部分,因此會產生效能損失。localStorage
速度更快且更具彈性,並且在 DataTables 1.10 中用作狀態資訊的預設儲存方式。
IE6/7 中無法使用 localStorage
。因此,DataTables 的內建狀態儲存功能在這些瀏覽器中不可用,在這些瀏覽器中,狀態儲存將會靜默失敗。如果您希望使用 Cookie,可以使用 stateLoadCallback
和 stateSaveCallback
參數來提供適當的函式。
相關文件
本文檔包含有關升級到 1.10 的一般資訊,有關個別主題的更詳細資訊,請參閱以下文件
其他問題?
如果您在升級過程中遇到任何其他問題,請在論壇中告知我,以便可以根據需要解決或完整記錄。