Commit 32ca85fb1861cee6ff01dd1a496d6e674f427674
1 parent
09ff5ae5
Exists in
master
and in
7 other branches
--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 | // | ... | ... |