所以我有一個可排序列的網格。在每次排序時,都會有一個類似UpdataGridSorting的操作,它會向服務器POST請求發送新數據。排隊requiests更新客戶端或服務器端的數據?
在服務器上,有一種方法可以更新數據庫中的數據。它以一種非常糟糕的方式做到這一點:沒有鎖來防止數據庫中的同步數據更新,只有更新時用於讀取的鎖。
因此我遇到了一個問題:當用戶在排序上多次點擊時,會發送幾個請求,他們可能會同時覆蓋數據並創建髒數據。
所以我的解決方法是在某些方面對請求進行排隊,並且在以前的更新完成之前不更新數據庫。哪一方最好創建隊列?
現在我的意圖是:
saveGridColumnSorting = (dataToSend, action, forceSend) ->
if not forceSend
queue.enqueue(dataToSend.id);
if queue.lenght > 1 and not forceSend
return
$.ajax(
url: url + "/" + action,
data: dataToSend,
success: (data) ->
if (queue.lenght > 0)
saveGridColumnSorting(queue.dequeue());
)
return
另外,如果你能看到XY問題,請參考的模式或值得信賴的來源,這將有助於在你的答案來解決X。
它是什麼樣的分類?公共資源,如全球電話簿?或者只是爲了動態的每用戶顯示目的? –
@YamMarcovic,我的答案有什麼不同?這是公共電網中的每用戶數據。你想知道傳輸的數據量或數據庫更新花費的時間嗎? – cassandrad