【发布时间】:2014-08-15 20:35:14
【问题描述】:
我有一个包含许多行的网络应用程序。每行都有一个带有“0”的标签和一个按钮。按下按钮会使标签增加 1。
应用开始时只有一行,但用户可以根据需要添加任意数量。
标签中的所有值都需要保留。因此,如果一个登录用户添加了 10 行,并在每行上按了几次按钮,那么下次他们回来时,他们的所有值都应该保持不变。这就是问题所在,因为我不确定保存这些值的最有效方法。
我的第一个想法是在单击每个按钮时进行 AJAX 调用,但如果用户向按钮发送垃圾邮件以达到某个值,那么我进行了许多多余的调用。我也可以每 x 秒保存一次所有行,但是如果用户更改一行然后在下一次保存触发之前离开,这可能会给用户留下不完整的数据持久性。我也想过在卸载时节省,但这不会吸引那些只是关闭浏览器或标签的用户。
我正在使用 MVC、Jquery、C# 和 MSSQL。我的网站和数据库位于同一台服务器上。
【问题讨论】:
-
我相信,如果您向按钮发送垃圾邮件,它将取消以前的请求,因此只要您发送总数而不是增加总数,就可以了。
-
如何将数据置于会话状态并在会话结束时进行处理?
-
@drneel 如果他们的垃圾邮件速度很慢(每秒 1 次)怎么样,那会给 ajax 调用足够的时间来调用我的服务器并启动数据库调用。
-
不要想太多,它应该在每次点击按钮时保存,垃圾邮件问题是您需要解决的问题,例如禁用按钮,直到您得到响应
-
如果用户必须单击按钮 x 次才能使行包含值“x”,那么我认为这可能是 UI 设计问题。您能否为用户提供一种输入所需值(# 或行、行内计数等)而不是让他们“向按钮发送垃圾邮件”的方法?
标签: c# jquery sql-server asp.net-mvc