Commit 32ca85fb1861cee6ff01dd1a496d6e674f427674

Authored by Edmar Moretti
1 parent 09ff5ae5

--no commit message

Showing 1 changed file with 56 additions and 6 deletions   Show diff stats
classesjs/classe_util.js
... ... @@ -1293,8 +1293,8 @@ i3GEO.util = {
1293 1293 if(!aguarde){aguarde = true;}
1294 1294 var head,script, tipojanela = i3GEO.janela.ESTILOAGUARDE;
1295 1295 if(!$i(id) || id === ""){
1296   - i3GEO.janela.ESTILOAGUARDE = "reduzida";
1297   - i3GEO.janela.abreAguarde(id+"aguarde","Carregando JS");
  1296 + //i3GEO.janela.ESTILOAGUARDE = "reduzida";
  1297 + //i3GEO.janela.abreAguarde(id+"aguarde","Carregando JS");
1298 1298 head= document.getElementsByTagName('head')[0];
1299 1299 script= document.createElement('script');
1300 1300 script.type= 'text/javascript';
... ... @@ -2045,10 +2045,17 @@ i3GEO.util = {
2045 2045 */
2046 2046 dialogoFerramenta: function(mensagem,dir,nome){
2047 2047 if(typeof(console) !== 'undefined'){console.info(mensagem);}
  2048 + var js = i3GEO.configura.locaplic+"/ferramentas/"+dir+"/index.js.php";
2048 2049 if(!$i("i3GEOF."+nome+"_script")){
2049   - var js = i3GEO.configura.locaplic+"/ferramentas/"+dir+"/index.js.php";
2050   - i3GEO.util.scriptTag(js,"i3GEOF."+nome+".criaJanelaFlutuante()","i3GEOF."+nome+"_script");
  2050 + i3GEO.janela.ESTILOAGUARDE = "reduzida";
  2051 + i3GEO.util.multiStep(
  2052 + [i3GEO.janela.abreAguarde,i3GEO.util.scriptTag],
  2053 + [["i3GEOF."+nome+"_script"+"aguarde","Carregando JS"],[js,"i3GEOF."+nome+".criaJanelaFlutuante()","i3GEOF."+nome+"_script"]],
  2054 + function(){}
  2055 + );
2051 2056 }
  2057 + else
  2058 + {i3GEO.util.scriptTag(js,"i3GEOF."+nome+".criaJanelaFlutuante()","i3GEOF."+nome+"_script");}
2052 2059 },
2053 2060 /*
2054 2061 Function: intersectaBox
... ... @@ -2269,7 +2276,50 @@ i3GEO.util = {
2269 2276 var txt = "¬" + matriz.join("¬") + "¬";
2270 2277 var er = new RegExp ("¬" + x + "¬", "gim");
2271 2278 return ( (txt.match (er)) ? true : false );
2272   - }
  2279 + },
  2280 + timedProcessArray: function(items,process,callback){
  2281 + var todo = items.concat();
  2282 + setTimeout(function() {
  2283 + var start = +new Date();
  2284 + do{
  2285 + process(todo.shift());
  2286 + } while (todo.length > 0 && (+new date() - start < 50));
  2287 + if (todo.length > 0){
  2288 + setTimeout(arguments.callee,25);
  2289 + }
  2290 + else{
  2291 + callback(items);
  2292 + }
  2293 + },25);
  2294 + },
  2295 + /*
  2296 + Function: multiStep
  2297 +
  2298 + Implementa a técnica de particionamento para execussão de funções no modo assíncrono
  2299 +
  2300 + Conforme página 144 do livro "Javascript de alto desempenho, Nicholas Zakas
  2301 +
  2302 + Parâmetros:
  2303 +
  2304 + steps {array} - funções que serão executadas
  2305 +
  2306 + args {array} - array de arrays com os argumentos de cada função
  2307 +
  2308 + callback {function} - função que será executada ao terminar os processos
  2309 + */
  2310 + multiStep: function(steps,args,callback){
  2311 + var tasks = steps.concat();//cria um clone
  2312 + setTimeout(function(){
  2313 + var task = tasks.shift(),
  2314 + a = args.shift();
  2315 + task.apply(null, a || []);
  2316 + if(tasks.length > 0){
  2317 + setTimeout(arguments.callee,25);
  2318 + } else {
  2319 + callback();
  2320 + }
  2321 + },25);
  2322 + }
2273 2323 };
2274 2324 //++++++++++++++++++++++++++++++++++++
2275 2325 // YUI ACCORDION
... ... @@ -2418,7 +2468,7 @@ try{
2418 2468 animation.animate();
2419 2469 }
2420 2470 }
2421   - };
  2471 + }
2422 2472 }
2423 2473 catch(e){}
2424 2474 //
... ...