保存Ajax表单数据最佳实践

我只是想知道在Ajax Forms中保存数据的一般最佳实践.例如,在Spree ECommerce中,每次更改对象列表中的值(例如,更改订单中某个项的数量)时,它都会使用Ajax调用更新数据库.

用户在编辑表单时手动按“保存”或“更新”,或者如果可以(您已设置ajax替代方案),只是在每次更改时自动保存数据?

似乎Stack Overflow Careers每隔几秒使用一些ajax保存你的个人资料的“草稿”.

因此,如果你有Ajax,似乎有3种方法可以在表单中保存数据:

>用户按下按钮,一次保存所有数据,如果数据重要则不好
>保存每个时间间隔
>保存每一个变化

您有什么推荐的吗?

最佳答案
好问题.我不认为有一个适合所有情况的一刀切的最佳实践.通常,您的解决方案越用户友好,实施的复杂性越大,正确降级解决方案的可能性就越小(除非您非常非常小心).

此外,无论您选择采用哪种方法,都会产生影响.例如,在涉及大量数据验证的情况下,定期自动保存可能不是一个好主意.用户可能会输入一些内容,并在几秒钟后收到错误消息.在这种情况下,即时反馈将对用户更有益,因为导致验证失败的输入可能是,例如,几个动作之前,因此可能对用户有些混淆.

每当用户更改某些内容(按键,复选框选择等)时,保存似乎是从可用性角度出发的方式,但同样,它取决于您正在做什么并且可能产生负面的副作用.例如,如果用户连接速度较慢,他/她可能会觉得您的网站速度很慢或有问题.与旧式的“点击保存”方法相比,它还会产生更多的数据库查询.

我想解决上述一些警告的一个显而易见的方法是结合现场客户端验证,但最终有效的可能是你的hallway testers所说的.

最终建议:创建旧式“点击保存以保存”表单并从那里进行增强,确保在没有javascript的情况下不会中断(除非得到更高权限的明确许可).希望这不是全部废话.

转载注明原文:保存Ajax表单数据最佳实践 - 代码日志