Flash (または AJAX) Web サイトのブラウザ履歴を有効にするための最適なツール / プラクティスは何ですか? 確立された慣行は、次のようにURLにハッシュ追加を設定して読み取ることだと思います
http://example.com/#id=1
Flex History Manager については知っていますが、他に検討すべき良い代替案があるかどうか疑問に思っていました。一般的な AJAX ソリューションまたはベスト プラクティスにも関心があります。
Flash (または AJAX) Web サイトのブラウザ履歴を有効にするための最適なツール / プラクティスは何ですか? 確立された慣行は、次のようにURLにハッシュ追加を設定して読み取ることだと思います
http://example.com/#id=1
Flex History Manager については知っていますが、他に検討すべき良い代替案があるかどうか疑問に思っていました。一般的な AJAX ソリューションまたはベスト プラクティスにも関心があります。
SWFAddressは広く使用され、テストされています。Flash でディープリンクを処理することは、(前もって計画を立てれば) ほぼ簡単になります。連携して動作し、プロセス全体を非常に簡単にするJSおよびASライブラリを提供します。RSH for AJAX のようなものを見たいと思うでしょう。
私はいくつかの小さなものにswfadressを使用しました。
AJAX の場合、Really Simple Historyのようなものが優れています。
私は次のように非常に単純な独自のソリューションを展開しました。
(function() {
var oldHash, newHash;
function checkHash() {
// Grab the hash
newHash = document.location.hash;
// Check to see if it changed
if (oldHash != newHash) {
// Trigger a custom event if it changed,
// passing the old and new values as
// metadata on the event.
$(document).trigger('hash.changed', {
old: oldHash,
new: newHash
});
// Update the oldHash for the next check
oldHash = newHash;
}
}
// Poll the hash every 10 milliseconds.
// You might need to alter this time based
// on performance
window.setInterval(checkHash, 10);
})(jQuery);
次に、新しい値が何であるかに基づいてそれに応じて応答するために、「hash.changed」イベントのイベントハンドラーが必要です。このアプローチは非常に単純なケースで機能します。
これは少し回りくどいように見えますが、私は現在、そのためにdojoフレームワークを使用しています。私のUIが主にJS/HTMLであるときに非常に便利なdojo.backがあります。パワー、滑らかなアニメーション、ブラウザの安定性を高めるために柔軟に対応するようになったので、使い続ける必要があるのはバックURLだけです。
FlexBuilderには、デフォルトのプロジェクトで独自のブラウザ履歴があるようです。
また、Flex 3クックブックには、mx.managers.HistoryManagerを使用して独自のカスタム履歴管理を作成するためのレシピがあります。dojo.backへの依存を取り除くために、いつかこれを試してみる予定ですが、まだ時間がありません。