我在数据库中保存了带有lat、lng、type和时间戳的标记位置。我当前的代码加载所有标记(根据它们的类型显示不同的图标),但当我使用setInterval函数时,它们都会重新加载。向我建议的一个解决方案是添加一个变量,该变量在第一次成功加载时检查时间戳,并每次更新,因此当再次触发该函数时,它将只加载在该时间之后添加的标记。然而,我不确定如何将其添加到我当前的代码中。如有任何帮助/建议,我们将不胜感激。感谢
setInterval(function(){
//Load Markers from the XML File
$.get("json-data-locations_2.php", function(data) {
$(data).find("marker").each(function() {
var type = $(this).attr('type');
var point = new google.maps.LatLng(parseFloat($(this).attr('lat')), parseFloat($(this).attr('lng')));
var icons;
if (type === 'Drink') {
icons = 'NewMarkers/Blue.png';
}
else if (type === 'Food') {
icons = 'NewMarkers/Orange.png';
}
else {
icons = 'NewMarkers/Purple.png';
}
create_marker(point, type, "", false, false, false, icons);
});
});
}, 8000);
另一种方法可能是这种方法。只调用一次您已经准备好的函数,然后对一个新的相同函数使用setInterval,只将您请求数据的.php文件更改为一个新文件,该文件会返回基于时间戳的最新标记,并使用以下查询:
SELECT MAX(timestamp) AS timestamp FROM mytable