jQuery BBQ プラグインを使用して、状態を location.hash にプッシュしています。
フィードバック ループを防ぐために、プログラムで状態を設定している間、hashchange リスナーを一時的に無効にしたいと考えています。
私はこの解決策を見てきました: hashchange イベントをトリガーせずにハッシュを変更する
残念ながら、これを行っても時々トリガーされるため、完全に堅牢ではないようです。
updateURL(obj){
$(window).unbind( 'hashchange');
$.bbq.pushState(obj);
setTimeout( function() { bindHashChange()}, 500);
}
プログラムで状態をプッシュするためのより良いアプローチはありますか? おそらく別のJSライブラリですか?