Webサイトの静的ファイルキャッシュの処理


Webサイトの開発では、css、jsファイルをさらに実行するたびに、トラフィックキャッシュをクリーンアップする必要があります.現在、いくつかの解決策が提供されています.
1.Ajaxの要求(静的データでも動的データでも):
//以下の3つの方法はいずれの方法でも可能です

  
  
  
  
  1. xmlhttp.setRequestHeader("Cache-Control","no-cache");    


//または

  
  
  
  
  1. xmlhttp.setRequestHeader("If-Modified-Since","0");


//または

  
  
  
  
  1. xmlhttp.Open(url+‘?rnd=‘+Math.random(),....); 

prototypeを使用する場合.jsは、このようなコードを使用します.

  
  
  
  
  1. new  Ajax.Request(url,{method:"get",requestHeaders:["Cache-Control","no-cache"]}); 
  2. //  
  3. new  Ajax.Request(url,{method:"get",requestHeaders:["If-Modified-Since","0"]}); 

2.cssの場合、jsファイル処理
cssのためjsはこのようにロードされるので、aspのようなサーバ側でキャッシュを禁止する方法は難しい.ajaxのhttpリクエストヘッダを設定することでキャッシュの使用を禁止することも難しい.
乱数はいい方法のようだ.

  
  
  
  
  1. //方法一: 
  2. document.write("<script  src=\'#\'" /span>+Math.random()+"‘></s"+"cript>"); 
  3.  
  4. //方法二: 
  5. var  js=document.createElement("script"); 
  6. js.src="test.js"+Math.random(); 
  7. document.body.appendChild(js); 

ただし、乱数を使用するとjsファイルはキャッシュされず、変更がなくてもサーバから再ロードする必要があります.海外のサイトに頻繁にアクセスすると、このような方法で解決されていることがわかります.

  
  
  
  
  1. <script  src="test.js?ver=113"></script> 


ここでver=113はバージョン番号であり、CVSや他のツールで生成される開発バージョン番号が一般的である.
これにより、キャッシュすべきときに静的ファイルをキャッシュし、バージョンが更新されたときに最新のバージョンを取得し、キャッシュを更新することができます.画像