# HG changeset patch # User Matti Hamalainen # Date 1397421700 -10800 # Node ID ce747cd9ec59a69e32ea05ad110f089e3768dcbb # Parent 98115d71bb641f8c7446556bdba6666ea999a7ab Add error situation handling. diff -r 98115d71bb64 -r ce747cd9ec59 map.js --- a/map.js Sun Apr 13 21:23:11 2014 +0300 +++ b/map.js Sun Apr 13 23:41:40 2014 +0300 @@ -205,19 +205,28 @@ XDownloadUrl("http://tnsp.org/gmapng/playerpos.php?token="+pmapToken, function(data, responseCode) { - if (data != "") + if (typeof(data) == "string") { - var pos = JSON.parse(data); - if (typeof(pos) == "object" && (pos.x != pmapPlrPrevPos.x || pos.y != pmapPlrPrevPos.y)) + if (data.match(/error/i)) { - pmapPlrMarker.setPosition(pmapMapCoordsToLatLng(new google.maps.Point(pos.x * 2 + 1, pos.y * 2 + 1), 7)); - pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(pos.x, pos.y), 6)); - pmapPlrPrevPos = pos; - pmapUpdateDelay = 500; + // In case of an error, stop updating + clearInterval(pmapUpdatePID); } else - if (pmapUpdateDelay < 5000) - pmapUpdateDelay += 500; + if (data != "") + { + var pos = JSON.parse(data); + if (typeof(pos) == "object" && (pos.x != pmapPlrPrevPos.x || pos.y != pmapPlrPrevPos.y)) + { + pmapPlrMarker.setPosition(pmapMapCoordsToLatLng(new google.maps.Point(pos.x * 2 + 1, pos.y * 2 + 1), 7)); + pmap.panTo(pmapMapCoordsToLatLng(new google.maps.Point(pos.x, pos.y), 6)); + pmapPlrPrevPos = pos; + pmapUpdateDelay = 500; + } + else + if (pmapUpdateDelay < 5000) + pmapUpdateDelay += 500; + } } else pmapUpdateDelay = 10000;