Foros del Web » Programando para Internet » Javascript »

Manejando datos con Javascript

Estas en el tema de Manejando datos con Javascript en el foro de Javascript en Foros del Web. Hola a todos, He estado dandole vueltas y buscando en el foro antes de escribir este post. Espero no estar preguntando una majadería. Mi idea ...
  #1 (permalink)  
Antiguo 14/10/2009, 08:04
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Manejando datos con Javascript

Hola a todos,

He estado dandole vueltas y buscando en el foro antes de escribir este post. Espero no estar preguntando una majadería.

Mi idea es la siguiente. Imaginad la típica página que recibe datos desde MySQL y los procesa en php. Una vez en cliente, el javascript toma el control. Si a eso le sumamos Ajax, pues eso, a partir de ahí todo el intercambio es en XML.

Pero a veces podría ser interesante recibir varios paquetes de XML y jugar con ellos con Javascript. Hacer filtros, vincular elementos, etc. Como si de unas órdenes SELECT se trataran.

Eso haría que en lugar de tener que hacer una petición al servidor cada vez que queremos mostrar una parte de los datos, el propio navegador hiciera de sencillo gestor de los datos recibidos por XML. Al principìo, al conectar al principio de la sesión se recibirían la mayor parte de los datos y luego podríamos jugar con ellos como si la base de datos estuviera en el cliente.

¿Es posible esto? He navegado por XMLs obteniendo el valor de los nodos y de los atributos y volcándolos en tablas que mostraba o no según la necesidad, pero esa forma de trabajar se me queda corta para lo que estoy pensando.

Saludos

Jeromín
  #2 (permalink)  
Antiguo 14/10/2009, 10:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Manejando datos con Javascript

Claro que es posible.En el caso de bases de datos muy grandes yo creo que es recomendable para no saturarlas..

Yo estoy haciendo algo así en una página que estoy haciendo.Traigo desde la bd los datos a un array de javascript y en el array hago búsquedas con expresiones regulares.

Por otro lado esto tiene el inconveniente de que si esos datos cambian en la bd con frecuencia estarás trabajando con datos "anticuados"
  #3 (permalink)  
Antiguo 14/10/2009, 10:51
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Manejando datos con Javascript

¿Podrías ampliar un poco cómo se hace eso? Me parece que lo de las expresiones regulares no lo tengo claro.

Gracias por adelantado
  #4 (permalink)  
Antiguo 14/10/2009, 13:01
 
Fecha de Ingreso: septiembre-2009
Mensajes: 215
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Manejando datos con Javascript

Pues un ejemplo:

Traemos de la base de datos registros y los almacenamos en el array "arrayConContenido".Ahora realizamos búsquedas en este array(se hace en el lado del cliente) y no en la base de datos.Este ejemplo busca aquellos registros que empiezan ('^') por textoABuscar sin importar las mayúsculas ('i') y los guarda en el array coincidePatron.


Código:
               var coincidePatron = new Array();
		var expresionRegular = new RegExp('^'+textoABuscar,'i');
		
		for(var i = 0;i < arrayConContenido.length; i++) {
		
		
			if ( ( expresionRegular.test(arrayConContenido[i]) == true ) {
			
				coincidePatron[j] = ciudadesPais.ciudades[i];

			}
		
		}
Espero que te ayude
  #5 (permalink)  
Antiguo 15/10/2009, 02:32
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Manejando datos con Javascript

Ya lo creo. Mil gracias.
  #6 (permalink)  
Antiguo 15/10/2009, 02:55
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Manejando datos con Javascript

Si, si es posible, pero no se hasta que punto sea recomendable. Ten en cuenta la carga en el cliente. Mientras que mySQL es un lenguaje especializado en manejo de bases de datos, javascript no lo es. Es obvio entonces pensar que MySQL será más rápido en ese aspecto. Otra cosa a tomar en cuenta es la carga de datos del lado del cliente así como el consumo de memoria que dicha carga y su manejo representan. Además, eso sin mencionar el gasto en recursos del lado del servidor, específicamente en transferencia. Cuantos de tus usuarios van a estar realmente interactuando con esos datos y para cuantos de ellos la carga representara solo un desperdicio, y por ende, un desperdicio de transferencia para ti.

OJO que no estoy diciendo que no sea una opción, lo único que quiero es que consideres los pros y los contras si es que no lo has hecho ya. Algunas veces estas ideas no son lo mejor, especialmente si ya tienes ajax implementado.
__________________
twitter: @imbuzu
  #7 (permalink)  
Antiguo 15/10/2009, 04:15
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Manejando datos con Javascript

Agradezco tu comentario BUZU.

Lo que yo pienso es que en desarrollos web con complejos interfaces de usuario en donde hay que darle muchas vueltas a los mismos datos, podría ser que una carga inicial fuera suficiente si luego se pueden gestionar bien los datos en cliente.

Al fin y al cabo según lo veo yo, pasa lo siguiente:

1. Es verdad que el servidor está especializado en gestionar datos y en transferirlos, pero el cuello de botella está en las comunicaciones, no en el servidor.

2. Aunque ha habido intentos filosóficos de simplificar los clientes, los PCs son cada vez más potentes y con más recursos. Gestionar en cliente unos miles de registros no es una sobrecarga excesiva. Es más, creo que los PCs estás infrautilizados realmente.

Así que, con esas consideraciones, y siempre pensando en interfaces de gestión de datos complejos, creo que es una buena opción, siempre y cuando el lenguaje de cliente lo permita, cosa que tenía dudas y gracias a PINCHU ya lo considero más cercano.

Gracias de nuevo a los dos.
  #8 (permalink)  
Antiguo 15/10/2009, 14:47
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Manejando datos con Javascript

Con respecto a tu segundo punto, creo que estás mal interpretando. Es cierto que los ordenadores son cada vez más potentes, desgraciadamente no pasa lo mismo con los motores. Todo depende de como estés gestionando tus datos ya que diferentes funciones de Javascript que pueden ser usadas para la gestión de los datos causan diferente impacto en el desempeño de la app. Por ejemplo, si estás sobre usando un for loop, lo más probable es que termines sobrecargando el navegador. Recuerda que javascript no es multiprocesos, sino que trabaja en un solo hilo, eso lo hace extremadamente "frágil" en cuanto a desempeño se refiere. Como te digo, todo depende de como estés planeando gestionar los datos y la cantidad de datos que pretendas almacenar en la memoria así como la forma en la que pretendes almacenarlos. Un error fatal, por ejemplo, sería usar variables globales para guardar esos datos y manipularlos, o guardarlos como propiedades de objetos externos al objeto que esté llevando a cavo la manipulación de los datos.

De que se puede hacer, se puede, ya que esa era la pregunta inicial. De que sea lo más conveniente, puede ser que si o puede ser que no, y aun si es lo más conveniente, queda la posibilidad de que no se cuide la optimización de los procesos de manejo de los datos. En cuanto al cuello de botella en la transferencia de los datos, dependiendo de tu servidor, lo más probable es que no se note a menos que estés manejando un numero muy grande de transacciones al mismo tiempo, en cuyo caso, el ahorro de transferencia sería mi prioridad.

De cualquier modo, espero que logres la mayor eficacia en el desarrollo de tu interfaz.

Saludos.
__________________
twitter: @imbuzu
  #9 (permalink)  
Antiguo 15/10/2009, 15:27
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Manejando datos con Javascript

Muy interesante tu razonamiento BUZU.

Lo cierto es que soy bastante novato en Javascript (se nota) y aún no soy plenamente consciente de sus limitaciones. Entiendo que no sea multiproceso, aunque no lo encajo bien con las recepciones de datos asíncronas de Ajax (porqué pierdo paquetes cuando le pido varias peticiones seguidas). Supongo que la ejecución no espera y al pasar a las siguientes líneas de código, 'olvida' lo anterior. Tampoco entiendo bien porque es un gran error usar variables globales para almacenar objetos XML, por ejemplo, y poder buscar algunos campos en determinados registros (De hecho lo que me devuelve PHP es siempre text/xml en el que el nodo raíz siempre se llama 'registros', al que le asigno el atributo de número de registros, y cada nodo del siguiente nivel se llama 'registro', además de que el nombre de cada campo están en las etiquetas de los nodos del tercer nivel. Con esta estructura base de tres niveles puedo tratar todos los XML como recordsets).

En cualquier caso, todo ello es una mecánica de programación nueva para mí. Se ve que estás mucho mejor informado que yo, así que haré caso de tu experiencia.

Muchas gracias.
  #10 (permalink)  
Antiguo 15/10/2009, 16:37
Avatar de buzu  
Fecha de Ingreso: octubre-2006
Ubicación: San Francisco, CA
Mensajes: 2.168
Antigüedad: 17 años, 6 meses
Puntos: 122
Respuesta: Manejando datos con Javascript

Bueno, para empezar, el uso de XMLHttpRequest tiene su chiste, no simplemente usarlo y ya, hay problemas por ejemplo al reusarlo, Además solo atiende una petición cada vez, por lo que no puedes usar el mismo objeto de forma simultanea para atender más de una petición. Lo que necesitas hacer es crear uno nuevo cada vez y destruirlo en cuento se termine de usar. Hay técnicas para reusarlo, pero la verdad no veo por que hacerlo.

En cuanto a lo de las variables globales, he estado justamente pensando en escribir un artículo sobre eso ya que en muchos lugares te dicen lo mismo, que no uses variable globales, pero nadie explica exactamente por que. Explicar el por que de forma clara no es teme para una respuesta en un foro, requiere más bien un artículo completo. En cuanto lo tenga listo y publicado podrás verlo, si te interesa saber cuando publico artículos, puedes seguirme en twitter, generalmente twiteo al respecto. De hecho, estoy haciendo una serie sobre el uso de ajax la cual estoy llevando en mi blog, si te interesa conocer la url de mi blog, mandame un MP, no la publico aquí por temor a que me sancionen bajo el argumento de auto promoción, ya me pasó una vez.

Mi usuario en twitter es imbuzu por si te interesa...
__________________
twitter: @imbuzu
  #11 (permalink)  
Antiguo 16/10/2009, 01:28
 
Fecha de Ingreso: enero-2008
Mensajes: 23
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Manejando datos con Javascript

No soy muy twitteador, pero lo probaré para seguirte la pista.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:46.