【发布时间】:2017-07-05 13:42:09
【问题描述】:
背景:
我将 DataTables 与一个名为“Turbolinks”的 JS 库结合使用,它基本上将您的应用程序转变为单页应用程序 (SPA),而无需使用真正的客户端框架的所有开销。它对 Ruby on Rails 应用程序的性能非常有用。
虽然它引入了一些令人头疼的问题 - 一个是与 DataTables 的兼容性。通过基本上破坏 Turbolinks 导航上的任何 DataTable,然后在 turbolinks 页面加载时重新初始化它,我已经让它工作得很好。这种方法效果很好,并且似乎是让 DataTables 与 Turbolinks 一起工作的最佳实践的全面接受的答案。
问题:
我试图添加到我的一些应用程序的最后一个功能/最后润色是 DataTable 状态保存。我面临的问题是,每次在页面导航上销毁/重新初始化表格时,...我实际上不太确定该怎么称呼它,但从检查设置对象上看起来stateSaveCallback - 它看起来像是 sInstance 和/或 sTableId:
DataTables_Table_0
然后将 localStorage 键设置为:
DataTables_DataTables_Table_0_/current_path: "{data: data}"
current_path 是您当前所在的路径/页面。
然后当它在返回页面时重新初始化时,它被设置为DataTables_Table_1,依此类推——因此状态永远不会被正确加载。
有没有办法覆盖该 ID(或以某种方式在 stateSaveCallback / stateLoadCallback 中设置它的名称),这样它就不会增加最后的“0”、“1”等结束了吗?这样当表重新初始化时,它会从 DataTables_Table/current_path 中提取保存的状态?
【问题讨论】:
标签: datatables local-storage turbolinks session-storage