From bb42e9b2a04fa539d2286d25fc045709c11400fd Mon Sep 17 00:00:00 2001 From: coderaiser Date: Fri, 10 Jul 2015 05:51:36 -0400 Subject: [PATCH] feature(operation) speed up loading: set delete, copy, pack operations load in order --- lib/client/operation.js | 102 +++++++++++++++++++++++----------------- 1 file changed, 58 insertions(+), 44 deletions(-) diff --git a/lib/client/operation.js b/lib/client/operation.js index e8ea2be5..50883257 100644 --- a/lib/client/operation.js +++ b/lib/client/operation.js @@ -16,6 +16,8 @@ Loaded, RESTful = DOM.RESTful, + exec = Util.exec, + copyFn = RESTful.cp, moveFn = RESTful.mv, deleteFn = RESTful.delete, @@ -61,53 +63,65 @@ } function create(callback) { - spero(function() { - spero.on('connect', function() { - copyFn = function(data, callback) { - setListeners(spero, callback); - spero.copy(data.from, data.to, data.names); - }; - }); - - spero.on('disconnect', function() { - copyFn = DOM.RESTful.cp; - }); - }); - - remedy(function() { - remedy.on('connect', function() { - deleteFn = function(from, files, callback) { - from = from.replace(/\?.*/, ''); + exec.series([ + function(fn) { + spero(function() { + fn(); - setListeners(remedy, callback); - remedy.remove(from, files); - }; - }); - - remedy.on('disconnect', function() { - deleteFn = DOM.RESTful.remove; - }); - }); - - ishtar(function() { - ishtar.on('connect', function() { - packFn = function(data, callback) { - setListeners(ishtar, callback); + spero.on('connect', function() { + copyFn = function(data, callback) { + setListeners(spero, callback); + spero.copy(data.from, data.to, data.names); + }; + }); - ishtar.pack(data.from, data.to, data.names); - }; - - extractFn = function(data, callback) { - setListeners(ishtar, callback); - ishtar.pack(data.from, data.to); - }; - }); + spero.on('disconnect', function() { + copyFn = DOM.RESTful.cp; + }); + }); + }, + + function(fn) { + remedy(function() { + fn(); + remedy.on('connect', function() { + deleteFn = function(from, files, callback) { + from = from.replace(/\?.*/, ''); + + setListeners(remedy, callback); + remedy.remove(from, files); + }; + }); + + remedy.on('disconnect', function() { + deleteFn = DOM.RESTful.remove; + }); + }); + }, - ishtar.on('disconnect', function() { - packFn = RESTful.pack; - extractFn = RESTful.extract; - }); - }); + function(fn) { + ishtar(function() { + fn(); + ishtar.on('connect', function() { + packFn = function(data, callback) { + setListeners(ishtar, callback); + + ishtar.pack(data.from, data.to, data.names); + }; + + extractFn = function(data, callback) { + setListeners(ishtar, callback); + ishtar.pack(data.from, data.to); + }; + }); + + ishtar.on('disconnect', function() { + packFn = RESTful.pack; + extractFn = RESTful.extract; + }); + }); + } + ]); Util.exec(callback); }