2016-05-07 10 views
3

私はリーフレットマップを使用して、更新画像を読み込むポップアップを使用しています。しかし、画像はキャッシュに入れられます。私はDate.now()を追加してこれを修正すると思ったが、これはポップアップが開くときよりもページが読み込まれる日付を追加するだけである。私は別の関数になりました日付を入れて試してみたリーフレットのマーカーポップアップでのキャッシュバスト

.bindPopup('<img src="image.jpg?'+ Date.now()+'" width="260" height="196" border="0"><br>Location One').addTo(map), 

...

function foo() { 
setInterval(Date.now(), 10000) 
} 

、ポップアップからその関数を呼び出す:しかし

.bindPopup('<img src="image.jpg?'+ foo() +'" width="260" height="196" border="0"><br>Location One').addTo(map), 

だけロードします。 "image.jpg?undefined"

キャッシュのタイムスタンプを更新するにはどうすればよいですか?

(現時点では、メタリフレッシュを使用してページ全体を更新していますが、これはあまりエレガントではなく、ページをリロードするときには地図上の場所に移動してください)

答えて

3

あなたはポップアップに任意のコンテナ/空のコンテンツを結合して、代わりに関連する地図マーカーまたはパスpopupopenイベントをリッスンできます。

scope.on('popupopen', function(ev){ 
    var src = 'image.jpg?v=' + Date.now(); 
    ev.popup.setContent('<img src="'+ src +'"/>'); 
}); 
+0

正しく動作するように正確な答えを得ることができませんでした(これは、私が得た数百のマーカーで動作するようにスケールしたときに間違っていたかもしれません)。しかし私は私が知らなかったpopupopen関数を利用しました。 は、だから私は、画像にIDを与えられ、私は他の場所で使用されてきたいくつかのjQuery適応しました:( 'popupopen' map.on、機能(E){ $( '#のpopupimage')のattr( 'SRC' に。 、$( '#popupimage')。attr( 'src')+ '?' + Date.now()) }); – Rob

関連する問題