# HG changeset patch # User John "Elwin" Edwards # Date 1340347491 25200 # Node ID 2984604ce3e67d30af0c001eb884aacdc05f7a7a # Parent b8b7660c0b5d5dfb9e43ab59708fcda9f53624c5 Begin handling XMLHttpRequest errors. Add an error handler to the various XMLHttpRequest objects. Eventually it will inform the user if the server is unreachable. diff -r b8b7660c0b5d -r 2984604ce3e6 rlgterm.js --- a/rlgterm.js Thu Jun 21 22:15:20 2012 -0700 +++ b/rlgterm.js Thu Jun 21 23:44:51 2012 -0700 @@ -233,6 +233,7 @@ return; var datareq = new XMLHttpRequest(); var msg = JSON.stringify({"id": session.id, "t": "n"}); + datareq.onerror = errHandler; datareq.onreadystatechange = function () { if (datareq.readyState == 4 && datareq.status == 200) { var wasdata = processMsg(datareq.responseText); @@ -259,10 +260,15 @@ } } +function errHandler() { + debug(1, "Server unavailable?"); +} + function sendback(str) { /* For responding to terminal queries. */ var msgDict = {"id": session.id, "t": "d", "n": nsend++, "d": str}; var datareq = new XMLHttpRequest(); + datareq.onerror = errHandler; datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); datareq.send(JSON.stringify(msgDict)); @@ -310,6 +316,7 @@ ev.preventDefault(); var datareq = new XMLHttpRequest(); var msgDict = {"id": session.id, "t": "d", "n": nsend++, "d": code}; + datareq.onerror = errHandler; datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); datareq.send(JSON.stringify(msgDict)); @@ -360,6 +367,7 @@ return; var datareq = new XMLHttpRequest(); var msgDict = {"id": session.id, "t": "d", "n": nsend++, "d": keystr}; + datareq.onerror = errHandler; datareq.onreadystatechange = postResponseHandler; datareq.open('POST', '/feed', true); datareq.send(JSON.stringify(msgDict)); @@ -402,6 +410,7 @@ loginmsg["name"] = document.getElementById("input_name").value; loginmsg["pw"] = document.getElementById("input_pw").value; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -437,6 +446,7 @@ statInterval = window.setInterval(getcurrent, statDelta); } var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -499,6 +509,7 @@ if (session.id != null || !session.lcred) return; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -572,6 +583,7 @@ smsg["h"] = 24; smsg["w"] = 80; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -603,6 +615,7 @@ return; var wmsg = {"n": Number(gamenumber)}; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -645,6 +658,7 @@ regmsg["pw"] = document.getElementById("regin_pw").value; regmsg["email"] = document.getElementById("regin_email").value; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState != 4 || req.status != 200) return; @@ -699,6 +713,7 @@ if (!session.id) return; var req = new XMLHttpRequest(); + req.onerror = errHandler; req.onreadystatechange = function () { if (req.readyState == 4 && req.status == 200) { processMsg(req.responseText);