Skip to content

Commit abb2013

Browse files
committed
Avoid redrawing dom and noisy time display
1 parent 1a48697 commit abb2013

File tree

1 file changed

+24
-4
lines changed

1 file changed

+24
-4
lines changed

main.js

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,27 @@ ipc.on("setServers", function(event, data){
2626
}
2727
break;
2828
}
29+
// loop over rows
2930
for(let key in data) {
3031
// only print servers that has been online some time the last 60 seconds (in ms)
31-
if(Date.now() - data[key].time < 60000) {
32+
if(Date.now() - data[key].time < 120000) {
3233
//console.log(key, data[key]);
3334
html += "<tr><td>"+key+"</td>";
35+
36+
// loop over columns
3437
for(let key2 in data[key]) {
3538
// run some special rules depending on the name of the field
3639
if(key2 == "time"){
3740
// print time in seconds instead of unix time
38-
html += "<td>seen "+Math.floor((Date.now()-data[key][key2])/100)/10+"s ago</td>";
41+
let time = Math.floor((Date.now()-data[key][key2])/1000)
42+
43+
// if slave pinged last 15 seconds, display it as online
44+
// otherwise alert us to the fact that it is missing.
45+
if (time < 15) {
46+
html += "<td style='min-width:110px;'>Online</td>";
47+
} else {
48+
html += "<td style='min-width:110px;'>seen "+time+"s ago</td>";
49+
}
3950
} else if (key2 == "mods"){
4051
// Make modlist look nice
4152
html += "<td>"
@@ -53,8 +64,17 @@ ipc.on("setServers", function(event, data){
5364
html += '<td id="temp" onclick="launchFactorio(this)">Join server</td>'
5465
}
5566
}
56-
// console.log(html)
57-
document.querySelector("#slaves").innerHTML = html
67+
68+
// turn our HTML text into dom elements for comparison
69+
var div = document.createElement('div');
70+
div.innerHTML = html;
71+
var div2 = document.createElement('div');
72+
div2.innerHTML = document.querySelector("#slaves").innerHTML;
73+
74+
// use special browser function for comparing dom elements
75+
if(!div.isEqualNode(div2)) {
76+
document.querySelector("#slaves").innerHTML = html
77+
}
5878
});
5979

6080
// tell node to launch factorio

0 commit comments

Comments
 (0)