私は、内部的にURLを介して状態を管理するWebアプリケーションを構築しています。これにより、ユーザーはブラウザのボタンとサイトのUIで状態を操作できます。アプリケーションとURLの状態を管理する方法は?
URLハッシュを管理するのに私はjQuery-BBQを使用しています。また、URLが変更されたとき(ブラウザの戻る/進むボタンが押されるなど)に応じて変更するハンドラがあります。しかし、それに応じて変更された内容は、ハッシュを変更してハッシュ変更ハンドラをトリガし、ループを発生させます。
これらのシナリオを回避するには、新しい状態が以前のものと同じかどうかを確認し、そうであれば救済します。しかし、私はすぐに、各状態で動作している複数のアクタを使って、各状態を別々に扱うかなりスパゲッティなコードを手に入れています。
このような状態管理シナリオを正常に処理する設計パターンはありますか?
おそらく私は私の質問では、私はURLのハッシュを使用する代わりに探していない明らかではなかった。より一般的には、変更が複数の入力(UI、ブラウザの状態/ URL)から来て、プログラムの複数の部分に影響する可能性がある状態を管理する方法を見つけようとしています。 – ericsoco