function update() { fetch('http://192.168.2.25:9050/api/ais') .then(function (response) { return response.json(); }) .then(function (data) { updateData(data); }) .catch(function (err) { console.log('error: ' + err); }); function updateData(data) { var table = document.getElementById('aisTable'); for (var i = 0; i < data.length; i++) { let row_id = "row_" + data[i].MMSI; row = document.getElementById(row_id); if(row == null) { // not found, create new row row = document.createElement('tr'); row.setAttribute("id", row_id); row.innerHTML = `` + data[i].MMSI + `` + `` + `` + `` + `` + `` + data[i].IsClassB + ``; table.appendChild(row); } // update existing row var td = document.getElementById("name_" + data[i].MMSI); td.innerHTML = data[i].Name; td = document.getElementById("timestamp_" + data[i].MMSI); td.innerHTML = data[i].LastUpdate; td = document.getElementById("lat_" + data[i].MMSI); td.innerHTML = data[i].Latitude; td = document.getElementById("lon_" + data[i].MMSI); td.innerHTML = data[i].Longitude; td = document.getElementById("imo_" + data[i].MMSI); td.innerHTML = data[i].IMO; } } } function startup() { setInterval(function () { update(); }, 10000); }