3

Ajaxを使用して新しいバージョンを確認するために、このクラスを作成してWebからファイルを取得します。 このコードはIE8のWindowsガジェットで実行されます。しかし、私はキャッシュのために問題を抱えています。 このAjaxクラスを修正してキャッシュを無効にする方法はありますか?Ajaxキャッシングを防ぐ方法

PS:私はライブラリやフレームワークを使用していません。

var ClassAjax = function() { 

    this.data = null; 

    var that = this; 

    this.get = function(url, send) { 

     var ajax = new function ObjAjax() { 
      try{ return new XMLHttpRequest(); } 
      catch(e){try{ return new ActiveXObject("Msxml2.XMLHTTP"); } 
      catch(e){ return new ActiveXObject("Microsoft.XMLHTTP"); }} 
      return null; 
     } 

     ajax.onreadystatechange = function() { 
      if(ajax.readyState == 1) { that.onLoading(); } 
      if(ajax.readyState == 4) { that.data=ajax.responseText; that.onCompleted(that.data); } 
     } 
     ajax.open("GET", url, true); 
     ajax.send(send); 

    }; 

    this.onLoading = function() { 
     //function called when connection was opened 
    }; 

    this.onCompleted = function(data) { 
     //function called when download was completed 
    }; 
} 

var request = new ClassAjax(); 
request.onCompleted = function(data) { alert(data); } 
request.get('http://exemple.com/lastversion.html', null); 

答えて

5

あなたはこのように、URL内の変数として現在のタイムスタンプを渡すことができます。

var timestamp = new Date().getTime(); 
ajax.open("GET", url+'?ts='+timestamp, true); 

また、あなたは適切なヘッダを使用して、サーバー側で再ロードするページを強制することができ

+0

ありがとうございます!あなたのコードに従ったクラスに関数を追加しました。 –

関連する問題