我有一個表(它表示一個項目隊列),其行可以使用jQuery可排序插件重新排序。用戶可以對其隊列重新排序,並將更新後的訂單保存到服務器上。如何保持服務器和瀏覽器之間的隊列同步?
我面臨的挑戰是服務器週期性地從隊列頂部拉出一個項目,處理它,然後將其移動到隊列底部。發生這種情況時,用戶在瀏覽器上看到的順序已經過時,當他們嘗試重新排序時,索引會全部搞亂。
我已經想出了一些解決方案來解決這個問題,但我不太清楚從可用性的角度來看,什麼樣的交互會有意義。我已經考慮檢測用戶界面上的拖動事件並首先檢查服務器上的更新,但是如果我刷新頁面,則用戶在中間的拖動將被中斷。
我知道服務器何時更新隊列,因此我考慮輪詢此信息,然後在更新發生前幾秒鎖定拖動功能,然後更新順序並解鎖拖動功能。
我很好奇,如果有人已經解決了類似的問題。任何想法或指導將不勝感激。
好主意。我想我會走這個方向。我會定期輪詢以使用ajax調用更新表格順序,然後檢查客戶端狀態是否與服務器在完成拖動重新排序時不同步。如果它們不同步,我將顯示一條警告,聲明訂單在服務器上發生了更改,因爲它們已經重新排序,然後我將拋棄它們的更改並重新同步瀏覽器以匹配服務器順序。謝謝! –