2012-04-25 12 views
2

これは私のウェブページにあるjQueryメソッドで、同じページを読み込んでイメージを置き換えて5秒ごとにイメージを更新します。私は毎回、それがIMGをロードすることがわかりました

$(document).ready(function() { 
    var refreshId = setInterval(function() { 
     $.get('default.aspx', function (data) { 
      var page = data; 
      var image = $(page).find("img"); 
      var fecha = $(page).find("div #fecha"); 


      $("#Chart1").attr("src", image.attr("src")); 
      $("#fecha").text(fecha.text());      
     }); 
    }, 5000); 
}); 

、データがどこかのブラウザで格納されますし、それdoesntの掃除...そして、私は、タスクマネージャを開いたとき、私が育ったメモリ使用量を見ることができます。..

イメージのスクリーンショットを示しています。

メモリを解放することについて心配する必要がありますか?そのは...

enter image description here

答えて

1

最終的に清掃される。

3

ちょうどURLを使用してイメージをリロードしないとURLを取得し、ページ全体をフェッチしないように、なぜはずとして、あるいはすべてが働いていますか?あなたは、これはまだそれぞれ逮捕画像ので、ディスクスペースを食べるようになるキャッシュを防ぐため、どちらかのサーバーヘッダを介してキャッシュしないように画像を設定するか、cachebusting

var img = document.getElementById('Chart1');   //use plain JS since it's just an ID 
var refreshId = setInterval(function() { 
    var rand = "?"+(Math.random()*10000000000000000); //cache busting method 
    img.src = "path_to_image"+rand      //set src using busted url 
}, 5000); 

使用したい場合は、別の画像のように扱われています。キャッシュされていれば、古いイメージを使用しています。少なくともページ全体を再度読み込んでいるわけではありません。

+1

'#'でプレーンjを使用すると動作しません。p –

+0

@FlorianMargaineはそれを逃しました。ありがとう – Joseph

+0

問題は画像がダイナミックであることです。このような乱数です/ChartImg.axd?i=chart_0_0.png & g = 1f126b056fe649f18be923a374668d9d – feco

0

$ getの代わりに$ postを使用します。 IEはたいていの場合、GETリクエストデータをキャッシュします。

0

あなたのページには1つの画像#Chart1しかありませんので、1つの画像しかメモリを使用していません。
他はブラウザのキャッシュに入っています。

しかし、私はHTML形式でのdefault.aspxリターン、
が、それは次のようにJSONデータを返すことはないと思う:

ブラウザだけで画像をキャッシュしているが、彼らがしていることが判明
{ 
    imageUrl: "http://example.com/a.jpg", 
    fetcha: "some text" 
}