保存不断变化的数据的最佳方法

时间:2014-08-15 20:35:15

标签: c# jquery sql-server asp.net-mvc

我有一个包含许多行的网络应用。每行都有一个标有“0”的标签和一个按钮。按下按钮会使标签增加1。

应用程序只以一行开头,但用户可以根据需要添加任意数量。

标签中的所有值都需要保留。因此,如果登录用户添加了10行,并按下每行上的按钮几次,那么下次他们返回时,他们的所有值都应该保持不变。这就是问题所在,因为我不确定保存这些值的最有效方法。

我的第一个想法是点击每个按钮进行一次AJAX调用,但是如果用户使用该按钮来获取某个值,那么我已经做了很多多余的调用。我还可以每隔x秒保存所有行,但如果用户改变行然后在下一个保存触发器之前离开,则可能会使用户保持不完整的数据持久性。我还想过保存卸载,但这不会捕获只是关闭浏览器或标签的用户。

我正在使用MVC,Jquery,C#和MSSQL。我的站点和数据库位于同一台服务器上。

1 个答案:

答案 0 :(得分:2)

我不会禁用该按钮,因为它可能会损害可用性 - 我不知道您正在使用的具体环境,但如果您担心按钮垃圾邮件,那么这可能会是用户的有效方案。服务调用可能需要一些时间,具体取决于底层网络以及客户端和服务器之间的距离。从用户的角度来看,如果输入可以在10到100毫秒内传送,则应用程序可以快速平稳地做出反应 - 如果您在每次用户按下按钮时执行服务呼叫,这个目标可能会受到损害。

避免这种情况的常见模式是使用计时器:当用户按下按钮时,启动计时器,运行时间可能为400到500毫秒:

  • 如果用户在计时器到达间隔结束之前提供新输入,则应重新启动计时器
  • 如果计时器确实发出了间隔结束的信号而没有来自用户的任何进一步输入,您可以节省下来进行维修。

我在自己的解决方案中使用了这种模式。我从杰夫约翰逊的优秀书籍Designing with the mind in mind获得了时间价值。