javascript - 読み込み - 画像 キャッシュ パラメータ




JavaScriptを使用して、キャッシュされたページにいるかどうかを検出するにはどうすればよいですか (4)

XmlHttpRequestを使用すると、現在のページをプルアップして、レスポンスのhttpヘッダーを調べることができます。

最良のケースは、単にHEAD要求を行い、ヘッダーを調べることです。

これを行ういくつかの例については、 http: //www.jibbering.com/2002/4/httprequest.htmlをご覧ください。

私は長い時間キャッシュから表示したいと思いますし、ページのレンダリングとキャッシュからページを読み込む際の動作が少し異なります。 JavaScriptでこれを判断する簡単な方法はありますか?


あなたがそれを行うことができる1つの方法は、ページがページに生成された時間を含めることと、いくつかのJavaScriptを使用して、ローカル時間とページが生成された時間を比較することです。 時間が閾値によって異なる場合、ページはキャッシュから来ている。 この問題は、クライアントマシンの時刻が正しく設定されていない場合に発生しますが、クライアントが現在のシステム時間をページの生成要求に含めてクライアントに戻すことで回避できます。


この質問はすでに4歳ですが。 私は2セントをjQueryとHistoryプラグインを使って追加すると思った。

$(document).ready(function()
{
    $('body').append('<div class="is_cached"></div>');
});

History.Adapter.bind(window,'statechange',function(){
   if($('.is_cached').length >= 1)
   {
      alert('this page is cached');
   }
});

ドキュメントが最初に読み込まれるとき。 新しいdiv.is_cachedが追加されます。 キャッシュされたページをロードするときにjavascriptを実行する互換性のある方法はありませんが、履歴の変更を監視できます。 履歴が変更され、div.is_cachedが存在する場合、ユーザーはキャッシュされたページングを表示しています。


直接ではなく、一部のブラウザにカスタムコマンドがある場合があります。

あなたが望むことをする回避策があります。 Cookieを使用して最初の訪問のtimestampを保存し、META HTTP-EQUIVを使用して、ファイルがキャッシュされる時間の長さを設定します( cacheLength )。 現在の時刻がtimestampからtimestamp+cacheLengthまでの期間内であれば、それらがキャッシュからロードされたものとして扱います。 キャッシュが期限切れになったら、クッキー時間をリセットします。





javascript