Bladeren bron

reload scripts

ncannasse 7 jaren geleden
bovenliggende
commit
d4f0348b0b
3 gewijzigde bestanden met toevoegingen van 17 en 5 verwijderingen
  1. 3 5
      bin/app.html
  2. 7 0
      hide/Ide.hx
  3. 7 0
      hide/tools/FileWatcher.hx

+ 3 - 5
bin/app.html

@@ -79,15 +79,13 @@
 
 <script>
   var path = './';
-  var fs = require('fs');
-
+  var fs = require('fs');  
   var reloadWatcher=fs.watch(path, function(_,file) {
 	var ext = file.split(".").pop().toLowerCase();
 	if( ext != "js" && ext != "css" ) return;
+	reloadWatcher.close();
 	setTimeout(function() {
-		hide.Ide.inst.hasReloaded = true;
-		location.reload();
-		reloadWatcher.close();
+		hide.Ide.inst.reload();
 	},1000);
   });
 </script>

+ 7 - 0
hide/Ide.hx

@@ -496,6 +496,13 @@ class Ide {
 		e.type = "text/javascript";
 		e.src = "file://"+file.split("\\").join("/");
 		js.Browser.document.body.appendChild(e);
+		fileWatcher.register(file,reload);
+	}
+
+	public function reload() {
+		hasReloaded = true;
+		fileWatcher.dispose();
+		js.Browser.location.reload();
 	}
 
 	public function saveDatabase() {

+ 7 - 0
hide/tools/FileWatcher.hx

@@ -9,6 +9,13 @@ class FileWatcher {
 		ide = hide.Ide.inst;
 	}
 
+	public function dispose() {
+		for( w in watches )
+			if( w.w != null )
+				w.w.close();
+		watches = new Map();
+	}
+
 	public function register( path : String, updateFun, ?checkDelete : Bool ) {
 		var w = getWatches(path);
 		w.events.push({ path : path, fun : updateFun, checkDel : checkDelete });