2017-02-24 1 views
2

私のサーバーは、多くのコンポーネントを含むページをクライアントに送信します。 すべての写真、js、cssがキャッシュされています。私のページでキャッシュの再検証を行わないリロードページ

は、このようなジャバスクリプトがあります:実際に

function refresh(){ 
    window.location.reload(); 
} 
var timer = setInterval("refresh()", 60000); 

が、私は自分のサーバー上に新しい情報があるかどうかを確認するために頻繁に自分のページをリロードする必要があります。

ただし、問題は次のとおりです。私のページをリロードすると、すべてのコンポーネント(画像、CSS、js ...)はに再確認されます。私は自分の情報だけをチェックしたいのですが、すべてのコンポーネントをチェックするつもりはありません。

だから、は、私はそれは写真なしで、私のページの一部のみを再検証することが可能ですかどうかを知りたいと思い、JSとCSSの再検証

おかげ

+0

あなたはいくつかのファイルまたはHTMLまたはまさに –

+0

実際に話をしている私のページの一部を更新すると言うとき、私は自分のページをリロードし、新しい情報でHTMLを取得します。このページには、キャッシュされた画像、js、cssが含まれています。私はちょうど私のHTMLを取得し、すべてのコンポーネントをrevalidateの代わりに私のキャッシュを使用したいと考えています –

答えて

0

ではなく、Ajaxのロードを使用してみてください:唯一の新しいをロードサーバーからの情報。 さらに、ページを自動的にリロードすることは、ユーザーにとって非常に面倒です。 JS、CSS等をURLの末尾に

0

追加クエリランダム値、

<script src="a.js?timestamp=1234567"> 

そして、すべてのページのロードのタイムスタンプ値を変更します。

+0

このソリューションは私の目標の反対ですか?キャッシュをもっと使いたいのですが、避けてはいけません。 –

0
header("Expires: Tue, 01 Jan 2000 00:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 
+2

あなたが提案している別のヘッダーの説明を与えてください。このようにOPにそれらを落とすだけで、無作為なコピーアンドペーストとカーゴの栽培で終わる危険性が非常に高いです。 – filmor

+0

これはpngの私のレスポンスヘッダーです:Cache-Control:public、must-revalidate、max-age = 7200。だから、2時間も経たないうちに私のページに戻ったら、私はキャッシュを使うつもりです。しかし、1分後にページを自動的にリロードすると、キャッシュを使用する前にキャッシュを再検証します –

0
You can use local storage to check the page first time or reload then avoid validate in document loading. 

// Check browser support 
if (typeof(Storage) !== "undefined") { 
// Store 
localStorage.setItem("storage", "reload"); 
// Retrieve 
if(localStorage.getItem("reload") == "reload") 
{ 
var isReload = true; 
} 
} 
if(!isReload) 
{ 
    //validation logic 
} 

function refresh(){ 
window.location.reload(); 
} 
var timer = setInterval("refresh()", 60000); 


//you have to clear the storage once you are logging out or leaving 
function removeloacalstorage(name) 
{ 
    //here name is "storage" 
    localStorage.removeItem(name); 
} 
関連する問題