从 1.9 升级至数据表 1.10
与所有数据表的 1.x 版本一样,向后兼容是升级的关键目标。我们希望数据表能直接进入您的当前网站,以便您在最少麻烦的情况下获得新功能的好处。始终可以从下载页面下载数据表的最新版本。
虽然大多数升级都应该非常顺利,但在从 1.9 或更早版本将数据表升级到 1.10 时,必须考虑一些要点(请参阅以前的更新备注了解早期版本)。
创建数据表/API 访问
现在可以通过以下方式创建数据表
$(...).dataTable()
,或$(...).DataTable()
两者的区别在于,第一个将返回一个 jQuery 对象,而第二个则返回一个数据表API 实例。
旧的 API(fn
前缀方法)在数据表 1.10 中仍然可用,以便向后兼容,并像以前一样附加到 jQuery 对象,但新的 API 已得到显着改进,我鼓励您尝试一下!
分页
数据表 1.10 显着升级了数据表的分页控件(请参见pagingType
),因此删除了旧的内置two_button
分页形式。
如果您正在使用two_button
分页控件,并希望继续这样做(而不是使用 1.10 中的simple选项,它提供相同的按钮,但按钮的类名称更一致),可以使用集成文件。在加载数据表后但在初始化表格之前,只需将此文件包含在文档中,two_button
分页将与 1.9 中完全相同地恢复(包括类名称等)。
服务器端处理
为了与数据表中的选项和 API 使用驼峰命名法保持一致,服务器端处理参数也已更新为更现代(请参阅文档以获取完整信息)。此更改是可选的,并且仅在条件允许的情况下启用,以确保完全向后兼容
$.fn.dataTable.ext.legacy.ajax
可用于强制使用哪种模式。设置为false
以使用现代方案,或设置为true
以使用 1.9 方案。默认情况下,它是null
以实现自动检测。- 数据表将根据是否
ajax
或sAjaxSource
用于初始化表格,自动决定使用哪种形式的参数ajax
- 将使用现代方案sAjaxSource
- 将使用旧方案。
因此,如果您只是更新数据表并且不更改任何参数,则无需更改服务器端脚本。
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 的状态保存
基于 Cookie 的状态保存已在 DataTables 1.10 中替换为基于 localStorage
的状态保存。大小限制为 4KiB 的 Cookie 非常有限,并且会产生性能损失,因为它们是每个 HTTP 请求的一部分。localStorage
更快更灵活,在 DataTables 1.10 中用作状态信息的默认存储。
localStorage
在 IE6/7 中不可用。因此,这些浏览器不支持 DataTables 的内置状态保存,在这种情况下,状态保存将静默失败。如果您希望使用 Cookie,可以使用 stateLoadCallback
和 stateSaveCallback
参数提供一个合适的函数。
相关文档
此文档包含有关升级到 1.10 的一般信息,以下文档中提供了有关各个主题的更详细信息
其他问题?
如果您在升级过程中碰巧遇到任何其他问题,请在 论坛 中告知我,以便根据需要解决问题或充分记录问题。