在网页之间传递大量数据

Posted

技术标签:

【中文标题】在网页之间传递大量数据【英文标题】:Passing large amounts of data between webpages 【发布时间】:2017-12-08 11:33:51 【问题描述】:

我有一个页面,用户在其中输入了(可能)数千个字符串的列表,然后进入使用该列表的页面。我尝试仅使用查询参数将字符串传递到后一页,但根据another *** post 的说法,这将超过几个浏览器的 URL 长度限制,尽管当我测试它时它在 Chrome、Firefox 和 Safari 上运行良好。传递大量查询参数是否有任何替代方法?

注意:一种替代方法是切换到单页应用程序,但如果可能的话,我想避免这么复杂。

【问题讨论】:

是的,将数据添加到<input type="hidden"> 字段并改为发布数据。另一种选择,使用 javascript localStorage 并读取第二页上的数据。 取决于服务器端代码是否使用该数据。对您目前正在使用它做什么了解不够 网站完全是静态的。 那么 localStorage/sessionStorage 或云存储服务将是最好的解决方案 也许您应该考虑分块传输数据。如果页面在用户输入 999 个字符串之后但在他们点击提交之前关闭会发生什么? 【参考方案1】:

URL 有一个非标准化的长度限制。这取决于您使用的浏览器和浏览器版本。总 URL 长度约为 2000 个字符,您可能是安全的。

如果您想避免这种情况,您应该创建一个没有限制的 POST 请求,而不是向其他页面发出 GET 请求。

另一种选择是使用 SPA,您实际上并没有通过 HTTP 发送任何内容,而是在内存中发送数据。

【讨论】:

【参考方案2】:

将数据保存在本地存储或某些客户端数据库(如 indexedDB)中,然后在其他页面上检索。

【讨论】:

以上是关于在网页之间传递大量数据的主要内容,如果未能解决你的问题,请参考以下文章

Activity之间使用intent传递大量数据带来问题总结

仅使用客户端在两个 HTML 页面之间传递大量数据

如何在不重复的情况下在进程之间共享大量数据? (IPC)

在网页上加载/显示大量数据

如何在两页面之间传递JSON数据

无法跨域传递大量数据