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

时间:2015-01-22 23:20:09

标签: jquery cookies browser datatable limit

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

然而,问题是应用程序可能有数百,数千个表,并且每个表都有一个单独的cookie。有了这个,用户可以非常快地打破允许浏览器存储的cookie数量限制(大约300)。这个数字是一个猜测,重点是它是一个小数字,如果我要为每个生成的表打开bStateSave,迟早(比之后更早)用户将打破该限制,从而打破应用程序。

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

1 个答案:

答案 0 :(得分:1)

Datatables默认使用localStorage和sessionStorage,因此除非您必须支持像6/7这样的旧浏览器,否则您不必担心遇到cookie限制。

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

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

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

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