# HG changeset patch # User Jaroslav Tulach # Date 1383052620 -3600 # Node ID fe8f6b27c70294d3d1e71821f89f6f9771bb3cd5 # Parent 6a41a849ea6b905f3745c241bff11cec032c59d3 Cache the returned resources, so subsequent requests work locally diff -r 6a41a849ea6b -r fe8f6b27c702 launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java --- a/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Wed Oct 23 15:15:48 2013 +0200 +++ b/launcher/http/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java Tue Oct 29 14:17:00 2013 +0100 @@ -81,13 +81,25 @@ Bck2Brwsr.generate(sb, new R()); } sb.append( - "(function WrapperVM(global) {" + "(function WrapperVM(global) {\n" + + " var cache = {};\n" + " function ldCls(res, skip) {\n" + + " var c = cache[res];\n" + + " if (c) {\n" + + " if (c[skip]) return c[skip];\n" + + " if (c[skip] === null) return null;\n" + + " } else {\n" + + " cache[res] = c = new Array();\n" + + " }\n" + " var request = new XMLHttpRequest();\n" + " request.open('GET', '/classes/' + res + '?skip=' + skip, false);\n" + " request.send();\n" - + " if (request.status !== 200) return null;\n" + + " if (request.status !== 200) {\n" + + " c[skip] = null;\n" + + " return null;\n" + + " }\n" + " var arr = eval('(' + request.responseText + ')');\n" + + " c[skip] = arr;\n" + " return arr;\n" + " }\n" + " var prevvm = global.bck2brwsr;\n"