我正在構建一個Web應用程序,通過URL在內部管理狀態,允許用戶通過瀏覽器按鈕以及網站的UI來操作狀態。如何管理應用程序和URL中的狀態?
我使用jQuery-BBQ來管理URL散列,並且我有一個hashchange的處理程序,當URL更改時(例如,瀏覽器回退/前進按鈕按下)相應地更改相應內容。然而,事情相應地改變了我自己最終改變散列,從而觸發hashchange處理程序,並導致循環。
爲了解決這些情況,我發現自己正在檢查新狀態是否與前一個狀態相同,如果是,則保存。但我很快得到了漂亮的代碼,分別針對每個狀態分別處理每個狀態的多個參與者。
有沒有優雅地處理這種狀態管理場景的設計模式?
也許我不清楚在我的問題,我不尋找替代使用URL哈希;更一般地說,我試圖找到一種方法來管理狀態,當更改可能來自多個輸入(UI,瀏覽器狀態/ URL)並可能影響程序的多個部分。 – ericsoco