舉個例子,我在UI中有一些滑塊和其他控件。當控制值改變時,我觸發一個事件來更新模型中的相應值。在某個時候,我會向服務器發送請求以通知更改。限制事件的響應頻率,同時確保最後偶數響應爲
我需要找出最佳方式來設置我發送這些請求到服務器的頻率的限制,並且也只在發生某些變化時發出這些請求。並確保向服務器發送的最後一條消息表示對模型所做的最後一次更改。
我想我可以做我自己的實現,但我想得到的建議,因爲我認爲這個問題已經有一個優雅的解決方案。
舉個例子,我在UI中有一些滑塊和其他控件。當控制值改變時,我觸發一個事件來更新模型中的相應值。在某個時候,我會向服務器發送請求以通知更改。限制事件的響應頻率,同時確保最後偶數響應爲
我需要找出最佳方式來設置我發送這些請求到服務器的頻率的限制,並且也只在發生某些變化時發出這些請求。並確保向服務器發送的最後一條消息表示對模型所做的最後一次更改。
我想我可以做我自己的實現,但我想得到的建議,因爲我認爲這個問題已經有一個優雅的解決方案。
這裏的,想到的僞代碼。
1)做出更改後,將其添加到一系列更改中,然後啓動計時器計數(如果它不計算在內)。
2)當計時器達到預設時間時(比如每5秒或30秒或任何您想要的),您將更改數組推入服務器,清除數組,並停止計時器計數。
3)如果用戶點擊一個按鈕,退出頁面,你還會引發步驟2
我認爲,涵蓋一切! (但它沒有提到一次「油門」這個詞,我想我是一個老派,自帶解決方案的編碼器)
感謝您將此標記爲答案!我對我的僞代碼很滿意。它簡單而強大。 :) – BrettFromLA
下劃線庫有一個方法叫油門其中不正是你想要什麼:http://underscorejs.org/#throttle
你可以嘗試調節請求。 – elclanrs
網絡上有很好的「節流」功能。 – Bergi