Comunidad de diseño web y desarrollo en internet online

Datagrid tarda en mostrar datos

Citar            
MensajeEscrito el 24 Sep 2004 03:08 pm
Hola, a ver si alguien ha tenido el mismo problema y lo ha solucionado o ha encontrado que no hay solución. El problema tiene que ver con el componente Datagrid. Parece que el aumentar el número de columnas a mostrar hace que aumente (y de que manera) el tiempo de respuesta en el datagrid (parece lógico,¿no?...peroo...¿para sacar una única fila?). Inicialmente pensé que podría deberse a la conexión remota que hacía a una base de datos para obtener las filas a mostrar pero tras probar a meterle valores a pelo (una única fila) comprobé que tardaba lo mismo. Además si le pones el scroll horizontal la cosa empeora. ¿Alguien se ha encontrado con el mismo problema? ¿Existe algun componente alternativo para mostrar los datos en forma de tabla?


Un saludo y gracias por leerme.

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 03:32 pm
si, es logico que a mas columnas/filas el tiempo aumente, pero este tiempo es demasiado? con q codigo lo esta haciendo?

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 24 Sep 2004 03:43 pm
Hola, gracias por contestar y por la rapidez.
He probado de las dos formas: recordset obtenido de la BD (es el uso que le voy a dar) y una única fila añadida al grid de la forma (el código no puede ser más simple así que no creo que el problema esté ahí):

mygrid.addItem({Campo1:dato1,Campo2:dato2,Campo3:dato3....

En ambos casos tarda prácticamente lo mismo (la respuesta del serividor es muy rápida) y eso es del orden de segundos (en ocasiones (veo muertos) supera los 5 segundos).

Hay que decir que recupero datos de una tabla con 38 campos. Evidentemente, esto es una exageracion puesto que no los voy a mostrar todos pero si sobre los 18 o así y sigue tardando demasiado.
Estoy utilizando el componente DataGrid que viene con la versión profesional del Flash MX 2004.

Gracias de nuevo.

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 03:54 pm
1. Cuantas columnas tiene el datagrid? las esta agregando con addColumn o solo con el dataprovider?
2. Esta usando dg.dataProvider? es mas rapido q addItem.
3. La causa no sera el 486 DX/2 de 66 MHZ? XD
en q pc esta la aplicacion?

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 24 Sep 2004 04:12 pm
Por partes,

Serán sobre unas 15-20 columnas a mostrar

Con el addItem he utilizado solo una fila pero tarda....

He probado también con el dataprovider (para un array y para un recordset)

El pc....bueno, creo que es un Pentium a 833 o algo así con 512 Mb de RAM

Otro saludo, que son gratis

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 04:26 pm
bueno 15-20 columnas son muchas pero...yo hago la siguiente prueba:

dg.dataProvider=[{a:"1",b:"2",c:"2",d:"2",e:"2",f:"2",g:"2",h:"2",i:"2",j:"2",k:"2",l:"2",m:"2",n:"2",o:"2",p:"2",q:"2"}];

y no tarda ...


tal vez por el procesador

otra idea: si son 20 columnas y un solo registro...por q no mostrar dos columnas y 20 registros? es mucho mas rapido

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 24 Sep 2004 04:46 pm
Gracias. Tendré que seguir probando aunque creo que depende tambien del tamaño de las columnas. Lo de cambiar filas y columnas puede ser una idea pero la dejo como ultimo recurso. Por cierto, me salen 2 Datagrid en el Flash : uno que viene en los UI Components (más bonito) y otro que viene aparte (Flash UI Datagrid) y que es más simple. Cuales son las diferencias si las sabes? Son versiones distintas del mismo componente?

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 06:49 pm
supongo q el otro datagrid es de la version adaptadad de los UI components de flash mx...el cual no tiene scroll horizontal (trabaje con el mucho tiempo y no me gusta)

Confío mas en la nueva version...

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 24 Sep 2004 10:00 pm
Ok. Si, a mí también me parece un poco feo pero si me va a mejorar los tiempos de carga igual me lo planteo. Yo principalmente quiero el datagrid para cargar datos obtenidos de una BD. Asigno el recordset al dataprovier del datagrid y listos (¿Hay alguna forma mejor de hacerlo?, ¿Algún consejo para reducir los tiempos de presentacion?). También lo voy a utilizar con XML aunque tengo alguna duda que otra. Por ejemplo, ¿qué es y para que sirve el XMLConnector?¿Algun tutorial(no encuentro apenas nada de XMLConnector)?


Una vez más gracias por tu dedicación y paciencia. Es que estoy empezando y no tengo la seguridad de que esté haciendo las cosas bien o, al menos, de la mejor manera posible ya que no domino la materia.
Otro saludo y van....

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 10:04 pm
la verdad no creo q mejore el tiempo de respuesta (yo no lo usaria)...

si puede poner un ejemplo de como lo esta haciendo, vemos como optimizar el tiempo

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown
Citar            
MensajeEscrito el 24 Sep 2004 11:00 pm
La semana que viene te pondré un ejemplo porque no tengo aquí el código pero, básicamente (todavía no me se la sintaxis de memoria así que no me lo tengas en cuenta), viene a ser algo así:

ASRecordSet recset;

getdata_Result(result_rs){
......
recset = result_rs;
migrid.dataprovider = recset ;
.......
}

Saludos.

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 24 Sep 2004 11:25 pm
Para cuadrar la sincronizada uso setInterval....al menoos funciona.

La cosa es así, cuadras ua función que pinte los datos un cierto tiempo después de pintarse el DataGrid.

Código :

function cargarDatos(){
   //....código para poner los datos en el DataGrid
   
   clearInterval(cargar);//para asegurarnos de que no vuelva a suceder esto
}
var cargar:Number = new Number();
cargar = setInterval(cargarDatos, 200);//ejecutará la función .2 de segundos después de pintarse de hacerse el llamado
                              //lo cual es imperceptible...además de que es el tiempo suficiente para hacerlo.


Suerte

Por gersonm

Claber

2238 de clabLevel

12 tutoriales
1 articulo
5 ejemplos

Genero:Masculino   Desarrollador de GAIA

Al otro lado de la mira

unknown
Citar            
MensajeEscrito el 24 Sep 2004 11:34 pm
Gracias. Como no tengo mucha idea de lo que me estás hablando mejor me lo miro un poco para saber un poco más y preguntar luego con conocimiento de causa.
No entiendo muy bien lo que se pretende (mejor me acuesto que estoy un poco dormido...)

Cuando se le asigna el dataprovider (en mi caso un recordset) es cuando se muestran los datos, ¿no?

Uffffff!!! Si, definitivamente mejor me acuesto...

Hasta mañana y gracias.
zzzzzzzzzzzzzzzzzzzzzz........

Por ffsanchez

13 de clabLevel



 

unknown
Citar            
MensajeEscrito el 27 Sep 2004 02:56 pm
despues de 2 segundos? no es mejor usar el evento complete?

Por _david

565 de clabLevel


1 articulo

Genero:Masculino  

Bogota, Colombia

unknown

 

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