launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java
changeset 1390 fe8f6b27c702
parent 1389 6a41a849ea6b
child 1513 ba912ef24b27
     1.1 --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java	Wed Oct 23 15:15:48 2013 +0200
     1.2 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java	Tue Oct 29 14:17:00 2013 +0100
     1.3 @@ -81,13 +81,25 @@
     1.4              Bck2Brwsr.generate(sb, new R());
     1.5          }
     1.6          sb.append(
     1.7 -              "(function WrapperVM(global) {"
     1.8 +              "(function WrapperVM(global) {\n"
     1.9 +            + "  var cache = {};\n"
    1.10              + "  function ldCls(res, skip) {\n"
    1.11 +            + "    var c = cache[res];\n"
    1.12 +            + "    if (c) {\n"
    1.13 +            + "      if (c[skip]) return c[skip];\n"
    1.14 +            + "      if (c[skip] === null) return null;\n"
    1.15 +            + "    } else {\n"
    1.16 +            + "      cache[res] = c = new Array();\n"
    1.17 +            + "    }\n"
    1.18              + "    var request = new XMLHttpRequest();\n"
    1.19              + "    request.open('GET', '/classes/' + res + '?skip=' + skip, false);\n"
    1.20              + "    request.send();\n"
    1.21 -            + "    if (request.status !== 200) return null;\n"
    1.22 +            + "    if (request.status !== 200) {\n"
    1.23 +            + "      c[skip] = null;\n"
    1.24 +            + "      return null;\n"
    1.25 +            + "    }\n"
    1.26              + "    var arr = eval('(' + request.responseText + ')');\n"
    1.27 +            + "    c[skip] = arr;\n"
    1.28              + "    return arr;\n"
    1.29              + "  }\n"
    1.30              + "  var prevvm = global.bck2brwsr;\n"