ここでは、BBQやjQuery Addressなどの最も人気のあるプラグインを参照する質問を含め、最も人気のある質問をすべて見てきました。
しかし、私が欠けているものがあります。私はそれらのプロジェクトで見たものから一歩後退する指導が必要です。彼らは私が明らかに持っていないいくつかの基本的な知識を前提としており、例のコードの各行が実際に何をしているのかを推測することはできません。
私は4つのことをしたい:
1)AJAX以外のアプリと同じように進むボタンを機能させます。
2)AJAX以外のアプリと同じように戻るボタンを機能させます。
3)ブックマークできるように、URLをアドレスバーに反映します。
4)AJAXのものをクロールできるように、ディープリンクを生成します。
そしてそれがすべてです。それ以外はやり過ぎです。これはRails3.0.4アプリケーションであり、すべて「#」のhrefを持つリンクがあります。リンクの1つをクリックすると、application.jsの関数がアクティブになり、現在のページのdiv内のhtmlが、.js.erbファイルからレンダリングされたパーシャルから作成されたより多くのリンクに置き換えられます。
正常に機能するパンくずリストがありますが、戻るボタンを使用すると、アプリケーションを表示する前に表示していたWebサイトに移動できます。
だから私の質問のいくつかは次のとおりです。
1)各リンクには、単純な「#」ではなく、一意のhref値が必要ですか?
2)そのdivを毎回置き換える必要がありますか、それとも単に非表示にして新しいdivを作成する必要があります。もしそうなら、それぞれの新しいdivは新しいIDを持つべきですか?
3)現在、アドレスバーのURLは変更されておらず、これらのAJAXリクエストはすべてPOSTであるため、アクセス時に必ずGETリクエストをトリガーするこれらの新しいURLの1つに応答するように、Railsで何かを行う必要がありますか?ブラウザの履歴または戻るボタンを介して?
これらは、私がそこにある既存の質問を実行することを妨げている障壁です。あなたが提供できるどんな助けにも感謝します!
編集:
私のアプリケーションはタブベースではありません。ページの読み込み時にすべてのアンカーが使用できるわけではありません。ユーザーがリンクをクリックすると、次のようになります。
1)非表示のフォームのフィールドには、クリックされたリンクのテキスト値が入力されます。
2)非表示のフォームはシリアル化され、POSTを使用してコントローラーアクションに配信されます。
3)コントローラーアクションは、誰が要求を行ったかを判別し、アクセスできるデータを把握し、フォーム値(現在はparams)を使用してオブジェクトのリストを取得します。
4)これらのオブジェクトは.js.erbビューテンプレートに渡され、渡された値でパーシャルがレンダリングされます。
5)新しいリンクは.js.erbテンプレートのjsを介してリバウンドされます。
基本的に、私のデータは静的ではないため、実際に「戻る」には、フォームの状態を現状のままにしてPOSTリクエストを再生成する方法を理解する必要があります。または、フォームの状態と画面を何らかの方法でキャッシュできますか?