/* startup, load groups from database */ document.addEventListener('DOMContentLoaded', function () { let table = new DataTable('#aisTable', { "ajax" : { "url" : "http://192.168.2.25:9050/api/ais", "dataSrc" : "", "type" : "GET" }, columns: [ { data: 'MMSI' }, { data: 'Name' }, { data: 'LastUpdate' }, { data: 'Latitude' }, { data: 'Longitude' }, { data: 'IMO' }, { data: 'IsClassB' } ] } ); setInterval( function () { table.ajax.reload( null, false ); // user paging is not reset on reload }, 30000 ); } ); 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; } } }