3

Rails 3バックエンドでjQueryを使用していますが、次のシナリオがあります。

  1. ユーザーは自分の投稿へのコメントを見て、それを削除したいと考えています
  2. ユーザーが削除ボタンをクリックして、データベースからコメントを削除します
  3. jQueryはremove()、上記の手順2に対するAJAX成功応答としてDOMからアイテムを削除するために使用します
  4. ユーザーが別のページに移動する
  5. ユーザーが戻るボタンを押すと、コメントのあるページに戻ります
  6. サーバーとDOMから削除されたにもかかわらず、古いコメントはまだ残っています

このシナリオのコメントは明らかにブラウザーによってキャッシュされているため、以前に削除された場合でも表示されます(サーバーにも存在しません)。

ユーザーが戻るボタンを押したときにコメント(またはDOMから削除された以前のキャッシュオブジェクト)が表示されないようにするにはどうすればよいですか?

ちなみに、 「ページをキャッシュしないでください」とは言わないでください:)それはオプションではありません。

4

3 に答える 3

0

ブラウザに依存する場合はいつでもわかりません。RESTfulルートを壊す可能性がありますが、できることは、投稿の発信元と同じURLにPUT / POSTを発行し、AJAX応答でキャッシュを無効にすることです(キャッシュ制御ヘッダー)。ブラウザは通常HTTP動詞を使用して区別しないため、ブラウザのキャッシュ内のこのURLを無効にする必要があります。

于 2011-04-16T13:50:15.007 に答える
0

回答1:ユーザーが戻るボタンを使用している場合、過去のことを見て驚かないでください。

$(document).ready()回答2:少し手間がかかりますが、古いコンテンツをチェックするajax呼び出しを試すことができます。それがうまくいくかどうかはわかりません。そうでない場合は、サーバーへのpingの間隔を設定して、画面に古いコンテンツがないことを再確認できます。(私は7秒の頻度でpingを実行して良好なパフォーマンスを示しました)

これを行うための手間のかからない方法はないと思います(キャッシングを防ぐ以外に;)

于 2011-04-12T04:57:08.793 に答える
0

Railsページキャッシュを使用している場合は、Create、Update、およびDeleteアクションでそれをクリアする必要があります。詳細については、リンクを参照してください

于 2011-04-16T19:15:53.143 に答える