changeset 75:2984604ce3e6

Begin handling XMLHttpRequest errors. Add an error handler to the various XMLHttpRequest objects. Eventually it will inform the user if the server is unreachable.
author John "Elwin" Edwards <elwin@sdf.org>
date Thu, 21 Jun 2012 23:44:51 -0700
parents b8b7660c0b5d
children a497ecd116d9
files rlgterm.js
diffstat 1 files changed, 15 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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);