私はページがアンロードされない1ページアプリケーションを持っています。 #URLを使用してjavascriptを使用してhashchangeを検出し、JSとAJAXを使用してUIを更新しています... は、サーバーに追加の要求を行うために前方および戻るボタンを必要とします。戻るボタンと進むボタンが1ページのアプリケーションでページをリロードするのを防ぐ
現在、ユーザーが最初にサイトに来て初めて、サーバ要求が
Processing by MyController#index as HTML
(OKです)作られて私の目標は、だけで、ユーザーの時間中に一度起こるために、このサーバ要求のためでありますサイト...他のリンクをクリックするたびに、新しいサーバーリクエストを防止するためにURLに「#」を使用するだけです...したがって、すべての「a」タグは次のようになります。
<a href="#page1/
私が抱えている問題は、電子バックと前進ボタンが(私が欲しいものである)私のJSなhashchangeリスナーをトリガ...しかし、それはまた、私は現在
1)ユーザーはMYDOMAINに移動取得していた機能である。ここ
Processing by MyController#index as HTML //I DO NOT WANT THIS TO HAPPEN
を呼び出します(これはOKです)
3)ユーザーがリンクをクリックし、現在のURLがmydomain.comを読み.COM
2)「HTMLとしてMyController#インデックスによる処理は、」起動され、サーバーの要求がなされています/#page1とJSでビューを更新する(これは問題ありません)
4)ユーザーがリンクをクリックすると、今urlはmydomain.com/#page2を読み取り、私はBACK(これはOKです)
5)ユーザーがクリックしたJSとビューを更新し、現在のURLがMYDOMAINを読み込みます.com /#page1とJS(これはOK)でビューを更新します。
6)ページをリロードするためにサーバリクエストが自動作成されました(「MyController#indexによる処理」が再度呼び出されます)(THIS IS NOT OK
ユーザーが戻るボタンをクリックすると、ステップ6が発生しないようにするにはどうすればいいですか?変更するURLを入力してください.JSを介してUIを更新し、サーバーリクエストはありません。
また、これはまったく役に立ちますと、私はレール上でルビーを使用しています。
これが可能かどうかわかりません。 Upvoted。 – VSO
あなたはHTML5履歴APIを使用することができますhttp://diveinto.html5doctor.com/history.html – jcubic
あなたはステップ6にどのように到着したかを明示していませんでした。あなたはステップ5で一度ステップが自動的にステップ6? – ghybs