我正在使用带有弹出窗口的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”。
如何更新缓存清除时间戳?
(目前我只是使用元刷新来更新整个页面,这不是很优雅,只是当你到达地图上你想要的位置时重新加载页面...)
答案 0 :(得分:3)
您可以将任意容器/空内容绑定到弹出窗口,而是在相关地图,标记或上侦听popupopen
事件路径
scope.on('popupopen', function(ev){
var src = 'image.jpg?v=' + Date.now();
ev.popup.setContent('<img src="'+ src +'"/>');
});