传单标记弹出窗口中的缓存清除

时间:2016-05-07 20:55:23

标签: javascript caching leaflet

我正在使用带有弹出窗口的Leaflet地图来加载更新图像。但是图像最终会缓存。我以为我会通过添加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”。

如何更新缓存清除时间戳?

(目前我只是使用元刷新来更新整个页面,这不是很优雅,只是当你到达地图上你想要的位置时重新加载页面...)

1 个答案:

答案 0 :(得分:3)

您可以将任意容器/空内容绑定到弹出窗口,而是在相关地图标记上侦听popupopen事件路径

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