Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Septiembre 03, 2010, 02:37:26
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Más tutoriales de java

+  Foros Java y C/Linux
|-+  Programación Web
| |-+  Java J2EE y JSP
| | |-+  Almacenar información de forma permanente
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Almacenar información de forma permanente  (Leído 265 veces)
marga
Newbie
*

Karma: 0
Mensajes: 19


Ver Perfil


« en: Febrero 08, 2010, 12:45:05 »

Hola,
tengo una aplicación que es una subasta, lo estoy programando con Java i JSP, el problema es que tengo una parte de la pantalla donde se puja que es estática, no refresca, pero la otra parte de la pantalla que es donde muestro la información de la puja, clasificación y puntuación, esta parte es refrescada cada segundo para que todos los que esten en una cierta puja vean en tiempo real su clasificación según pujen los demás.

Esto implica que cada segundo se acceda a la base de datos para extraer la información de la mejor oferta, de su puntuación, el ranking, etc... por lo que aumento mucho el tiempo entre que se puja y se visualiza la pantalla, porque se juntan los cálculos de la puntuación, inserciones de las pujas y los refrescos.

Una idea seria que mientras no se puje, vaya refrescando cada segundo pero sin acceder a la base de datos, que mostrara los últimos datos que se extrageron al realizar la puja, pero el problema es que no se como hacer esto, ya que al refrescar cada segundo, por lo que veo los datos se pierden y hay que volver a cargarlos de segundo en segundo.

Habria alguna maner sencilla de poder realizar esto sin acceder a la base de datos, y en el momento que se puje se actualize la información mostrando los nuevos datos a todos los usuarios conectados.

Gracias, un saludo
En línea
atreyu
Newbie
*

Karma: 0
Mensajes: 15


Ver Perfil
« Respuesta #1 en: Abril 14, 2010, 12:20:00 »

(DEJO ESTE MENSAJE AUNQUE CREO QUE EL SIGUIENTE SE AJUSTA MAS A LA PREGUNTA)
jum quieres hacer algo que es una aspiracion de la programacion web desde hace mucho, que el navegador cliente se actualice a peticion del servidor sin que el cliente tenga que realizar peticiones continuamente. O sea tener el comportamiento de una aplicacion de escritorio pero en una arquitectura web.
Hay nuevas tecnologias que lo permiten pero no se si te merecera la pena meterte en ese berenjenal:
Por ejemplo
"Comet is able to push data from the server and from the client, to over come the regular HTTP request polling scalability limitation "
http://wiki.apache.org/tomcat/WhatIsComet

Una pagina sobre las tecnologias "push":
"Push services are often based on information preferences expressed in advance. This is called a publish/subscribe model. A client might "subscribe" to various information "channels". Whenever new content is available on one of those channels, the server would push that information out to the user."
http://en.wikipedia.org/wiki/Push_technology

Otra opcion es bajar la velocidad de refresco o simplemente refrescar a peticion del usuario, aunque supongo que no es lo que querrias.
« Última modificación: Abril 14, 2010, 12:49:03 por atreyu » En línea
atreyu
Newbie
*

Karma: 0
Mensajes: 15


Ver Perfil
« Respuesta #2 en: Abril 14, 2010, 12:40:02 »

Jum releyendo tu post igual no te he contestado lo que querias.
Si quieres seguir haciendo el refresco y que solo acceda a la bbdd cuando se ha realizado una puja puedes establecer una estructura de datos a nivel del contexto de aplicacion que consistiria en  una copia o cache en memoria de los datos de la puja.
En cuanto alguien puja actualizas  los datos en esta variable global de la aplicacion. En los refrescos le devuelves siempre la copia y creo que te valdria.
En línea
Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!