刷新联系人列表机制

时间:2013-12-10 10:52:08

标签: java jquery ajax servlets

在我的网络应用程序中,有一个名为“首选联系人”的联系人列表。此列表每2分钟刷新一次。在此列表中,用户可以执行多项操作,例如选择联系人并在右键单击时执行呼叫,从列表中删除联系人等。

请求按以下方式处理:

Browser --> Ajax Request --> Java Servlet --> SOAPRequest --> SOAPResponse -->
Ajax Response --> Browser

问题是如何使用自动刷新机制同步最终用户操作?

让我们采取以下方案:

当列表在2分钟后刷新并且同时用户删除一个联系人时,刷新列表也包含已删除的联系人,因为刷新请求之前已发送到删除请求。

目前,我已经处理了这种情况,例如在刷新过程中,用户无法对列表执行任何编辑操作。其他选项可以像排队用户在刷新时执行的所有操作和

但我希望以这样的方式同步这些操作,使这些事情对最终用户保持透明?在Ajax中有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以在额外的用户操作之前忽略对所做请求的响应。

执行此操作的一种方法是在请求上设置序列号,例如,var requestNum = 0随每个请求递增。每个刷新请求的回调应该知道它自己的唯一requestNum,如果它自己的requestNum小于当前requestNum,那么回调将什么都不做,因为这意味着后来的请求已做出更准确的回应。

如果用户执行会影响这些请求响应有效性的任何其他操作,则另一种更积极的方法是abort个活动请求,如您所描述的那样。