From ec99de45b82abdcc614e661afd1b9bb375ecd865 Mon Sep 17 00:00:00 2001 From: Li Haoyi Date: Tue, 9 Sep 2014 06:32:44 +0800 Subject: 0.2.1 for reals --- .../src/main/scala/workbench/WorkbenchClient.scala | 36 +++++++++++++--------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'client/src/main/scala/workbench/WorkbenchClient.scala') diff --git a/client/src/main/scala/workbench/WorkbenchClient.scala b/client/src/main/scala/workbench/WorkbenchClient.scala index d5151ab..f4ee2c6 100644 --- a/client/src/main/scala/workbench/WorkbenchClient.scala +++ b/client/src/main/scala/workbench/WorkbenchClient.scala @@ -22,31 +22,37 @@ object WorkbenchClient extends Api{ @JSExport lazy val shadowBody = dom.document.body.cloneNode(deep = true) - // Trigger shadowBody to get captured when the page first loads - dom.addEventListener("load", (event: dom.Event) => shadowBody) - @JSExport var interval = 1000 @JSExport var success = false @JSExport def main(bootSnippet: String, host: String, port: Int): Unit = { - Ajax.post(s"http://$host:$port/notifications").onComplete{ - case util.Success(data) => - if (!success) println("Workbench connected") - success = true - interval = 1000 - json.read(data.responseText) + def rec(): Unit = { + Ajax.post(s"http://$host:$port/notifications").onComplete { + case util.Success(data) => + if (!success) println("Workbench connected") + success = true + interval = 1000 + json.read(data.responseText) .asInstanceOf[Js.Arr] .value .foreach(v => Wire.wire(v.asInstanceOf[Js.Arr])) - main(bootSnippet, host, port) - case util.Failure(e) => - if (success) println("Workbench disconnected " + e) - success = false - interval = math.min(interval * 2, 30000) - dom.setTimeout(() => main(bootSnippet, host, port), interval) + rec() + case util.Failure(e) => + if (success) println("Workbench disconnected " + e) + success = false + interval = math.min(interval * 2, 30000) + dom.setTimeout(() => rec(), interval) + } } + + // Trigger shadowBody to get captured when the page first loads + dom.window.addEventListener("load", (event: dom.Event) => { + dom.console.log("Loading Workbench") + shadowBody + rec() + }) } @JSExport override def clear(): Unit = { -- cgit v1.2.3