2011-09-14 15 views
3

私はAJAXメソッドjQuery.Get()を使用しています。 これを使ってページをdivに読み込みます。しかし、ロードされているこのページを変更し、「リフレッシュ」をクリックします。それは更新されません。唯一の解決策は、ブラウザを終了してから再度開いてウェブサイトに再度アクセスすることです。これは本当に不愉快なことであり、私はそこに解決策があるのだろうかと思います。法上のjQuery.Get()メソッドを使用してリフレッシュできません

さらに詳しい情報: http://api.jquery.com/jQuery.get/

コードを使用:

function pagina_ophalen(pagina){  
    $.get('paginas/' + pagina + '.html', function(data){ 
    $('#inlaadcontent').css('display','none'); 
     $('#inlaadcontent').html(data); 
    $('#inlaadcontent').fadeIn("slow"); 
    }); 

} 

をありがとうございました。 ディラン

+0

これまでのところ、ソースコードが正しいようです。 Firebug/Chromeコンソールにエラーがありますか?有効な文字列であるか? この問題を詳しく調べるには、FirebugまたはChrome Devツールを使用することをおすすめします。 –

答えて

0

キャッシングの問題。あなたのURLに乱数を追加しよう:

var randomToken = Math.random(); // Or replace if you need 
$.get('paginas/' + pagina + '.html' + ? randomToken, function(data) { 
    // ... 
}); 
4

あなたはこの作業を取得するために作ることができる最も簡単な変更が違いは何

function pagina_ophalen(pagina){  
    $.get('paginas/' + pagina + '.html', 
      { t = new Date().getTime() }, // ADD THIS 
      function(data){ 
      $('#inlaadcontent').css('display','none'); 
      $('#inlaadcontent').html(data); 
      $('#inlaadcontent').fadeIn("slow"); 
      }); 
} 

のですか?

URLが毎回同じため、ブラウザはAJAXリクエストの結果をキャッシュしています。変数(現在のタイムスタンプに基づいて?t=xxxxxxx)を含むクエリパラメータを追加することにより、ブラウザは各要求を新しいものとみなし、キャッシュされた結果を使用する代わりにページを再度フェッチします。

jQuery.ajax関数(そのうちのgetは便宜的にターゲットとする部分集合です)を見ると、設定できるcacheオプションがあることがわかります。これはまさに私がfalseに設定されている場合、私が上で説明したものです。

+0

私はあなたが書かれたコードの正確なコピーを使用して、今の厳しい問題を理解することは私にAptanaの – Dylan

+0

でエラーが発生します。これは、 \t関数pagina_ophalen(paginaを){作品 \t \t \t \t $に.get( 'のpaginas /' + pagina + 'の.html'、{名前:Math.random}、 \t \t \t \t機能(データ){ \t \t $( '#1 inlaadcontent')、CSS( '表示'、 'なし'); \t。 \t \t $( '#inlaadcontent ').html(data); \t \t $( '#inlaadcontent')。fadeIn( "slow"); \t \t}); \t \t \t} – Dylan

0

最も簡単な方法は、http://api.jquery.com/jQuery.ajax/を使用し、キャッシュをfalseに設定することです。

$ .get()は、とにかく$ .ajaxを呼び出します。したがって、ステップをスキップして正しい結果を得ることができます。

関連する問題