如何克服浏览器对 cookie 的限制?

How to overcome the browser limit for cookies?

我正在开发一个使用 jQuery 的数据 table 的应用程序。而且我还在使用 Column Filters 插件。其中一项要求是能够持久保存 Datatable 的状态,从而也能持久保存列过滤器。

但是,问题在于应用程序可能有成百上千个 table,并且每个 table 都有一个单独的 cookie。有了这个,用户可以很快突破浏览器允许存储的 cookie 数量限制(大约 300 个)。这个数字是一个猜测,关键是它是一个小数字,如果我要为每个生成的 table 打开 bStateSave,迟早(迟早)用户会打破这个限制,从而打破应用程序。

这个问题有哪些替代解决方案?将状态存储在数据库中是不好的,因为应用程序已经在不断查询 millions/billions 数据。

Datatables 默认使用 localStorage 和 sessionStorage,所以除非你必须支持像 ie 6/7 这样的旧浏览器,否则你不应该担心 运行 进入 cookie 限制。

https://datatables.net/examples/basic_init/state_save.html

与设置为 0 的 stateDuration 一起使用,您的状态将无限期存储。 https://datatables.net/reference/option/stateDuration

话虽如此,如果您最终也将受到浏览器对 localStorage 的限制...

达到这些限制时,唯一可行的解​​决方案是使用 stateLoadCallback 和 stateSaveCallback 在服务器上保存状态。