我们有一个非常大的HTML表单(> 100个字段),用用户输入的数据更新SQL Server数据库。用户需要很长时间才能填写表单,但他们提交的每条信息对业务流程都非常有价值。即使用户放弃表单,我们也希望保留他们输入的所有内容。
我们计划将onblur事件附加到每个字段,并使用jQuery / AJAX立即将每个数据发布回应用程序服务器。那部分非常简单。我们遇到的问题是何时以及如何最好地将此应用程序级别的信息保存到数据库中。同样,我们的优先事项是数据保留而不是性能,但我们也希望尽可能高效地完成此任务。
我看到的选项是:
选项1似乎最明显是故障安全的,但也是最耗费资源的。选项2看起来最优雅,但是我们可以绝对确定自定义类实例在没有首次运行其更新方法的情况下无法销毁吗?
感谢您的帮助!
答案 0 :(得分:1)
Web Forms
,那么请考虑使用wizards
(将表单切割为逻辑Steps
)
您可以在没有表单向导的情况下执行相同的操作,但仍然会将流程切换为客户端的逻辑步骤。您可以在纯JavaScript中执行此操作,但如果您使用框架(jQuery,Knockout等)可能会更容易 - 概念保持不变,将表单输入过程切换为部分(又称“步骤”) - 例如使用显示切换,每个“步骤”的div等。
... H个
答案 1 :(得分:0)
我会在一些xml或数据集(.getxml)中打包所有内容并将xml传递给存储过程....
How to pass XML from C# to a stored procedure in SQL Server 2008?
也许可以将调用放在后台线程上。
http://code.msdn.microsoft.com/CSASPNETBackgroundWorker-dda8d7b6
xml将比逐行调用值(RBAR)更快。 您可以只保存xml,或者将xml分解为关系表。