gpt4 book ai didi

javascript - 如果表单非常大,应该多久保存一次数据

转载 作者:行者123 更新时间:2023-11-30 15:05:16 24 4
gpt4 key购买 nike

我对使用 ajax 将数据保存在数据库中有疑问。 (我可以做这部分)。我的问题是我有一个非常大的嵌套表格(我无法更改它)。需要保存在大约 100 个字段的数据中的输入字段的大表单。新字段可能会打开,这取决于用户选择的选项。

例如,假设有一个问题是您玩的是哪种游戏。如果他选择了一个游戏,那么在多选下拉菜单中,下一个问题是你玩这个游戏的频率。在哪一天、什么时间等等。每个游戏可能有不同的问题集。

现在我的问题是如何将这些数据保存在数据库中。我应该在用户点击提交后保存它还是应该在用户感觉数据之间保存它。这样他就可以刷新数据来填充他的数据。

我应该多久发送一次 Ajax 请求来保存数据以及如何从新字段中获取数据以及我应该如何将其保存在 Rails 中。我知道 update.attributes

请帮助我或给我一些建议,我应该怎么做。

最佳答案

如果您实时编辑或仅在保存时主要是用户体验问题。

但是如果您经常保存(如自动保存)并且担心大小(100 个普通列可能没问题,尽管大文本或 blob 更少)那么您想要做的只是保存字段实际上已经改变了。

在 JavaScript 中有很多方法可以实现这一点。您可能只在用户完成编辑时保存每个输入(例如,输入失去焦点),或者您可以基于计时器保存并跟踪自上次保存以来更改的字段。

然后让您的 JavaScript 在其 AJAX 请求中仅包含这些字段(PATCH 可能是一个很好的使用方法)。然后 Rails 应该只尝试保存您更改的对象的属性(通过 update_attributes,或 save 在 ActiveRecord 上)。如果您还想优化 SELECT,请在类上使用 updateupdate_all。例如最终像:

MyBigRecord.update(id, title: "My new title")

您可以在这里轻松使用普通的强参数,它只包括那些实际存在于 params 中的参数。

MyBigRecord.update(id, params.require(:my_big_record).permit(:title, :author, :etc))

如果你需要处理子对象那么你可能需要一些特殊的处理,但思路是一样的)。一点逻辑也可以根据需要执行初始 create,尽管您的 JavaScript 随后会收到 id 以用于将来的保存。

关于javascript - 如果表单非常大,应该多久保存一次数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862257/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com