1

hashchangeイベントプラグインを使用していくつかの基本的なページを作成しました。しかし今、私はもっと大きなものを作りたいのですが、それを簡単な方法で行う正しい方法を見つけることができません。

index.htmlは、アニメーション化されたログインボックスで始まります。アカウントにログインすると、ログインボックスがフェードアウトします。ハッシュは#startに変わります。content + header/footerがロードされてフェードインします。この部分は今のところ問題ありません。

主な理由は、index.htmlを離れずにブラウザの戻るボタンをアクティブにすることです。私はこれをアーカイブするためにajaxとハッシュを使用します。#startは、ログイン後にメインインターフェイスをロードします。#messagesは、messages-interfaceをロードします。どちらにも、ハッシュが変更されるたびにトリガーされる必要のある追加のスクリプトとアニメーションがあります。

私の一般的な問題は、サブリンクにアクセスする方法がわからないことです。たとえば、ユーザーは#messagesにいます(ajaxは/php/messages.phpをロードし、フェードインします)。メッセージインターフェイスには、受信トレイが表示され、下部に送信トレイにアクセスするためのリンクが表示されます。リンクにはどのようなオプションがありますか?messages.phpは、新しいメッセージの場合は?s = n、送信トレイの場合は?s=oのようなGETリクエストを待ちます。どうすればこれを念頭に置いて行うことができますか:ブラウザの戻るボタンをアクティブにしますか?

ハッシュを#messages /outboxに変更してファイル/php/messages.php?s=oをロードするような方法はありますか?jqueryコードはどのように見えるべきですか?メインナビゲーションには、'switch(hash){case#start;のようなスイッチ関数を使用しました。ケース#messages}'; より多くのリンク/ハッシュを取得するため、これは最善の解決策にはなりません。

何か提案/解決策はありますか?

4

1 に答える 1

1

ボタンの機能を返すだけでなく、URLをユーザーにとって有用なものにしたい場合は、常にURLを検索する必要があると思います。
あなたのページが開いている間にユーザーが以前に保存したURLを貼り付けることを考えてみてください、あなたは彼らを彼らが探している場所に連れて行きたいですよね?
したがって、これを念頭に置いて、ハッシュを変更することだけを気にし(履歴/ブックマーク可能な状態に維持したい場合)、hashchangeイベントでページとアクションを処理します。hashchangeイベントプラグインを使用している場合は、jQuery BBQ:Back Button&Query Libraryを確認することをお勧めします。これは、「完全な.deparam()メソッドと、ハッシュ状態管理、およびフラグメント/クエリ文字列の解析とユーティリティメソッドをマージします。」それをはるかに簡単にします。

于 2012-11-05T13:32:07.250 に答える