小さな非同期アプリケーションのバックボタンをサポートするために、jQueryアドレスを複数回使用しました。AJAX履歴ボタンをサポートしていません
すべてのAJAX要求が同じことを行う(つまり、ページを非同期で要求し、HTML要素を要求で置き換える)場合、実装は簡単です。
AJAXリクエストが異なる場合、あるケースでオーバーレイを開き、別のケースでページ全体のコンテンツを変更すると、ものが乱雑になるとしましょう。
私はハッシュ値(#/ somepage/someotherpage)を解析するために多くのifステートメントを実行しなければならないという事実のために、いくつかの本当に馬鹿げたコードになりました。
私はいつも自分自身に繰り返しました。これを行うにはより良い方法が必要です。
誰もが同じ問題を抱えていて解決策を提案できますか?
私の考えをチェックし、あなたの考えを教えてください。
私の考えは、window.history
オブジェクトをエミュレートするオブジェクトを作成することですが、AJAXの履歴のみを「ajaxhistory」としましょう。 ページが要求されるたびに非同期的にこのような何かが起こる:
ajaxhistory[i] = {
url: 'here the url',
type: 'overlay'
otherusefulinfo: 'whatever'
}
i++
ので、例えば:
if(moving back or forward){
if(currenturl == ajaxhistory[i-1].url){
// i'm going back
// i'm able to know what type of action i should take thanks to
// ajaxhistory[i-1].type and ajaxhistory[i-1].otherusefulinfo
}
}
私はそれは、読んmantainおよび変更するために私のコードは、はるかに簡単になるだろうので、このアイデアが好き。 新しい機能を追加したいと思う...私は新しいタイプを追加することができます。私はそれを使って作業しますが、通常、私は多くの厄介なif文を編集するべきです。
あなたはどう思いますか?パフォーマンスの観点から問題がありますか?