Comunidad de diseño web y desarrollo en internet online

problema con bucle for :shock:

Citar            
MensajeEscrito el 05 May 2017 02:30 pm
buenas, tengo un problema con un bucle for, especificamente con google maps
es que tengo un bucle for de mas de 20 mil elementos( en este caso puntos google), pues como es tan larga la ejecucion el navegador se queda pegado como por 5 segundos, existe alguna estrategia o algun control del bucle para que el navegador no se cuelge?

Por AleBqto

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 05 May 2017 07:59 pm
te refieres a que en tu web lo tienes embed el google maps? bueno la solucion a eso del for aunque no se visualizar muy bien tu problema ya que yo he creado velocimetros (cpu-browser-javascript ) y un smartmovil de dos nucleos arm genera mas 600.000 loops por segundo,por lo que pienso que es mas un problema de loading en cuanquier caso yo lo que hago para controlar completamente el for (se que funciona en la mayoria de programas java,c++,python,go,y por defecto tambien funciona en javascript) es como yo digo desubicar el for y crear una funcion asociada al for ->

Código Javascript :

funcion vamoshahacerfor(...i){var I=i[0],F=i[0]+1000;
for(;;){if(I<F){
//lo que quieras hacer --->
I++;}else{break;}};//aqui acaba el for
}//aqui acaba la funcion



apartir de aqui hay varias soluciones asociar esa funcion a eventos de usuario y que el mismos vaya desglosando sin que el lo sepa el for o juegas con window.onload ->funcionfor ->fordesglosado

la clave esta en controlar el for desde fuera es decir en vez de

Código Javascript :

for(var i=0;i<final;i++){}
//hacer
var i=0;for(;;){if(i<final){/*algo*/i++;}else{}} 

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 05 May 2017 09:12 pm
me olvide de que dentro del else debes romper el for con un break;sino te va a loopear hasta que llegue a su intmaximo... basicamente con ese formato for es hacer un while podriamos decir que el for lo conviertes en un while. la jugada esta en crear eventos es decir segun mi experiencia cuando cree un sistema de mapas similar a google tenia que cargar muchas imagenes para que al arrastrar una imagen se moviera el parent de todas las imagenes y cuando hacia un onmousedown me drageava bien pero me llegava enseguida al final del parent de imagenes que en el caso de google son png canveados es decir utiliza canvas en mi caso a mi me gusta mas svg ya que las imagenes de mapas vectorizados mediante curvas de beziers ocupan menos ademas las puedes reducir aun mas pasando los numeros de las curbas de beziers de 6 decimales (segun vectoriza ilustrator) a decimales de 2 (teniendo en cuenta el redondeo eso lo puedes hacer con php. python o cualquier lenguaje que te permita jugar con strings i ficheros) de manera que para servidores pequeños creo que es mejor svg . la idea es que cuando tienes a la imagen onmousedownn y pasas a onmouseup en onmouseup en caso de sistemas tactiles ontouchend se activa ajax alli carga las imagenes al parent de imagenes de forma que el parent de imagenes se mueve de posicion i la imagenes dentro del parent se reubican de tal forma que al usuario cuando hace onmouseup no le parece que se mueva nada pero en realidad el tanto el parent de imagenes como la imagenes dentro del parent se mueven continuamente . eso lo puedes comprobar en firefox le haces un zoom al minimo es decir control - a tope si arrastras muy rapido el google maps en horizontal veras el limite del parent de imagenes de googlemaps y cuando hagas onmouseup veras la reubicacion que hace googlemaps en el parent de imagenes. no se si con esto que te he puesto te podra dar algunas ideas . en mi caso tengo un servidor que me funciona bastante bien la webdemapas que hice con mas de 18millones de images de mapas con varios zoom con svg solo me ocupa 8 gigabytes . la vectorizacion hace que imagenes que ocupan varios kilobytes en png en realidad me acaban ocupando centenares de bytes. para vectorizar en massa pues con bash imagemagic y convert mapadebits . bueno espero haberte dado algunas ideas de como solucionar algo aunque no se exactamente el problema . no creo que sea el loop en ai sino lo que hay dentro del loop.

Por aukun

Claber

200 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.