Backbone: 戻るボタンをクリックすると、jsonがレンダリングされます

作成日 2011年09月24日  ·  10コメント  ·  ソース: jashkenas/backbone

バックボーンを使用したRailsアプリがあります。 戻るボタンまたは前面ボタンをランダムにクリックすると、jsonが表示されます。

invalid

最も参考になるコメント

ありがとう!
私のため

$.ajaxSetup
  cache: false

十分でした

全てのコメント10件

詳細情報を提供できますか? 現在、多くの人がRailsの本番環境でBackboneを使用しており、同じ動作は見られません。

問題を正確に再現できるように、具体的にはテストケースを提供してください。

私は同じことを経験しています-外部URL(バックボーンアプリによって処理されない)に移動するか、タブを閉じてから戻ったり、タブを再度開いたりすると、JSONが表示されます。 テストケースをどのように提供できるかわかりませんが、何が起こっているのかを知る手がかりとなる可能性のある詳細をいくつか共有できます。

アプリケーションは_.delay関数を使用して、モデルコレクションをサーバーと同期します(collection.fetch())。 サーバーは、同じURLで同期するためにアプリとJSONの両方を提供するRoRアプリであり、ヘッダーを使用して、アプリ全体を提供する必要があるのか​​、モデルのデータのJSON配列のみを提供する必要があるのか​​を決定します。 それが問題になるのでしょうか?

私の他の考えは、ブラウザがサーバーに対して行った最新の要求をキャッシュし、押し戻すとそれをレンダリングするというものです。 (最初の同期リクエストの前に)アプリをすばやく終了できた場合、戻るとアプリがレンダリングされます(JSONではありません)。

これを克服する方法について何かアイデアはありますか?

私はこれを行うことで問題を解決しました

$.ajaxSetup
  beforeSend: (xhr) ->
    xhr.setRequestHeader "Accept", "application/json"
  cache: false

ありがとう!
私のため

$.ajaxSetup
  cache: false

十分でした

+1

+1

RoRアプリでも同じ問題が発生し、ソリューションが機能しました。

ありがとう@ omenking @ antonlitvinenko

さらに良いことに、常に明示的に.json拡張子をURLに追加し、ブラウザにjsonとページhtmlの両方をキャッシュさせます(気にしない場合)。つまり、 /users/1 + /users/1.json同じURLのキャッシュエントリを上書きする代わりに

@Sijaあなたは正しいですが、明示的な.jsonに変更しました。テストを行うと、jsonの同じ問題がページを上書きします。 私が何を間違っているのか分かりますか? hehe
tks

+1

このページは役に立ちましたか?
0 / 5 - 0 評価