1

祝大家好日子,

我有一个包含大约 90 到 100 个字段的表单,分为子表单,每次必须显示表单时都使用 ajax 加载这些子表单。但我想在每次加载子表单时保留表单字段上的数据(比如说在意外的页面刷新或者即使用户在子表单之间切换)。可以做到这一点的最佳方法是什么。

我在想我可以将它存储在 cookie 中,或者说存储在数据库中。但是,将其存储在数据库中意味着每次加载子表单时我都必须查询字段数据。同样,如果是 cookie,它必须读取存储在 cookie 文件中的数据。我需要一些帮助来决定什么是最有效的方式,更多的是在速度方面。

其中最好的方法是什么,或者是否有任何其他可能性在每次加载子表单时保留子表单中的字段数据(每次都通过 AJAX 加载。)

我正在使用 PHP 和 Codeigniter 框架。

谢谢!!

4

3 回答 3

3

像这样的表格需要持久存储。我会考虑使用会话状态来平滑子表单加载,每当用户更新某些重要内容时写入数据库。就个人而言,我会从仅数据库的解决方案开始,如果性能是一个问题,然后添加会话状态。

Cookie 并不意味着存储大量数据。即使可能,它们也会使请求大大膨胀(想象一下每个请求都会传输 100 个表单字段)。

浏览器中的本地存储也是一种选择,但我会先考虑其他选择。

于 2013-03-06T03:31:59.240 回答
2

我将首先通过使用序列化来简化它:

$data = serialize(array_merge($_POST,$olddata));

那么这对您来说可能就足够了,但是现在将它存储在任何地方都非常容易,因为它只是一个字符串。将其重整为原始状态:

$data = unserialize($data);

..无论你最终从哪里提取它——数据库、会话等。

于 2013-03-06T03:32:51.160 回答
2

数据库散文 它也可以从其他计算机访问 您可以存储比 cookie 锥体更多的数据 如果您通过 ajax 检索数据,它可能会增加服务器上的负载

Cookie 比数据库更快,无需查询、获取和所有过程。锥体空间有限

但是,您可以使用本地存储

所以答案是数据库存储

于 2013-03-06T03:46:26.997 回答