0

私は現在、約 20 の個別のページを持つ Web サイトを持っています。すべてのページには 2 つのバージョンがあります...閲覧者がまだログインしていないバージョンと、ログインしているバージョンです。ログインしたバージョンは、ログインしていないバージョンとはかなり異なる場合があります... ユーザーがログインまたはログアウトしたときに、ドメインのキャッシュされたすべてのページをブラウザーに「無効化」するように指示する簡単な方法があるかどうか疑問に思っていました。

例: ログインしていない閲覧者が私のサイトの多くのページにアクセスすると、ブラウザがこれらすべてのページをキャッシュします。ログオン時に、次回ページがロードされたときにブラウザーがキャッシュされたバージョンを使用しないようにする特定のヘッダーをユーザーに提供できますか? これは、ログインとログアウトの両方で発生する必要があります。

ヒントやコツは非常に役に立ちます。私はキャッシングにかなり慣れていません...ありがとう:)

4

3 に答える 3

1

いいえ、ユーザーのブラウザにページのキャッシュを解除するように指示することはできません。ログインしているユーザーとログアウトしているユーザーに別の URL を使用することもできます (クエリ文字列を追加するだけで十分です)。または、そもそもそれらのいずれのキャッシュも許可しないでください。

于 2012-06-14T08:44:01.590 に答える
1

理想的には、ユーザーのログイン状態を表す個別のページを持たないことです。アプリケーションのその属性は、いわばビューではなくモデルに実際に属しています。ログインしたユーザーは、コントローラーを介してログインしていないページを見ることは決してないと思いますよね? その場合、どのページがキャッシュされ、どのページがキャッシュされていないかは問題ではないと私は提案します。

以下は、あなたが望むことを行うために私が思いつく唯一の方法ですが、それはきれいではありません...ユーザーがログインしているが、ログインしていないページをリクエストした場合、ページを期限切れにします(例: $q- >header( -expires => 'now' )) ログインしているユーザーをログインしていないページに送ります。しかし、上記のように、あなたがそれをしたいとは思えません。このようなシナリオを検出し、ユーザーをログイン ページにリダイレクトする js/ajax を含む .js ファイルを参照できます。

これがどれほどの試練であるかがわかります。この問題が解消されるように、アプリケーションの設計を強化することをお勧めします。うまくいけば、これは役に立ちました。幸運を!

于 2012-06-14T16:29:55.907 に答える
0

Force browser to clear cache をご覧ください。そこにはいくつかの有望なリードがあります。

それ以外の場合は、リロード ボタンを Shift キーを押しながらクリックするようにユーザーに指示します。;-)

于 2012-06-14T08:56:12.097 に答える