Django 会话与浏览器本地存储

Posted

技术标签:

【中文标题】Django 会话与浏览器本地存储【英文标题】:Django Sessions Vs Browser Local Storage 【发布时间】:2016-08-31 15:21:12 【问题描述】:

我正在解决用户在填写表格时必须转到其他页面/网址的问题。在表格中填写一些数据后,将返回他之前填写表格的页面。我无法合并表格,因为用户必须填写不同的表格。所以我想在去另一个页面填写数据之前维持数据用户填写的第一个表格。为此,我可以使用浏览器的本地存储,也可以使用 django 会话。但在我的表单中,有几个文件字段可以包含高达 20 mb 的图像、视频、音频和附件。所以我不知道浏览器会支持本地存储中的这么多数据还是 django 会话存储它。 我想知道如果我将表单序列化并将其存储到本地存储中,那么我是否能够使用 javascript 将该数据放回字段中。我不想使用似乎不可行的 django 表单向导,因为我使用 Ajax 发送请求并且需要从表单的一半转到另一个页面。

将得到指导。

【问题讨论】:

【参考方案1】:

这里的关键问题是数据的大小。这是它的局限性:

Firefox 可以使用 IndexedDB、LocalStorage 和 SessionStorage。 LocalStorage 和 SessionStorage 最多可以使用 10MB 的存储空间,但 数字实际上是两者的总和。对于 IndexedDB,您最多可以使用 台式机 50MB,移动设备 5MB 免费。但是,用户可以允许 通过授予权限来删除的限制。

What is the max size of localStorage values ?

【讨论】:

以上是关于Django 会话与浏览器本地存储的主要内容,如果未能解决你的问题,请参考以下文章

如何显示存储在 Django 会话系统中的本地 url 的缩略图?

Puppeteer:如何存储会话(包括 cookie、页面状态、本地存储等)并稍后继续?

原生JavaScript实现本地存储(localStorage)和会话存储(sessionStorage)

可以禁用会话存储/本地存储并启用 Cookies 吗?

在PHP和JavaScript中设置Cookie会话存储(SessionStorage)和本地存储(LocalStorage)

我啥时候应该使用 PHP 会话、浏览器本地存储和 JavaScript 对象参数?