【问题标题】:Continuously Loading Markers from database depending on last loaded timestamp根据上次加载的时间戳从数据库中连续加载标记
【发布时间】:2014-11-14 01:03:12
【问题描述】:

我在数据库中保存了标记位置,包括 lat、lng、类型和时间戳。我当前的代码会加载所有标记(根据它们的类型显示不同的图标),但是当我使用 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);

【问题讨论】:

    标签: javascript json google-maps timestamp setinterval


    【解决方案1】:

    另一种方法可能是这种方法。 调用你已经拥有的函数一次,然后在一个新的相同函数上使用 setInterval,并且只将你请求数据的 .php 文件更改为一个新文件,该文件根据时间戳返回最新标记,查询如下:

    SELECT MAX(timestamp) AS timestamp FROM mytable
    

    【讨论】:

    • 感谢您的帮助。我使用您的方法使其工作,但改用此查询:SELECT * FROM HotspotTable WHERE timestamp BETWEEN DATE_SUB(NOW() , INTERVAL 15 SECOND) AND NOW() ORDER BY timestamp。我每 15 秒调用一次 setInterval。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-07-27
    • 1970-01-01
    • 2014-04-28
    • 2015-12-01
    • 2012-07-24
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    相关资源
    最近更新 更多