2013-12-10 26 views
0

在我的web應用程序中有一個名爲「首選聯繫人」的聯繫人列表。此列表每2分鐘刷新一次。在這份名單中,用戶可以像選擇聯繫人執行多個動作和做右鍵點擊呼叫,刪除列表等刷新聯繫人列表機制

請按以下方式處理聯繫人:

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

的問題是如何使最終用戶操作與自動刷新機制同步?

讓我們下面的情形:

當列表2分鐘後清爽,同時用戶delets一個觸點,然後刷新列表中包含已刪除的聯繫人,以及由於刷新請求更早送到刪除請求。

目前,我已經處理了這種情況,如正在刷新正在處理中,則用戶無法在列表上執行任何編輯操作。其他選項可以像排隊用戶在刷新時執行的所有操作,但是我想以這些方式同步這些操作以使最終用戶對這些操作保持透明嗎?有沒有辦法在Ajax中做到這一點?

回答

0

您可以簡單地忽略之前附加用戶操作的請求的響應。

這樣做的一種方法是在請求上有一個序列號,例如,每個請求都會增加一個var requestNum = 0。每個刷新請求的回調應該知道它自己的唯一requestNum,並且如果它自己的requestNum小於當前的requestNum,那麼回調將不會執行任何操作,因爲這意味着後續請求已經做出了更準確的響應。

如果用戶執行任何會影響這些請求響應的有效性的其他操作(如您所描述的情況),則另一個更積極的方法是到abort活動請求。

相關問題