Foros del Web » Programando para Internet » Javascript »

optimizar resultados html

Estas en el tema de optimizar resultados html en el foro de Javascript en Foros del Web. Hola amigos, no estoy seguro que el titulo de mi tema sea claro, lo que necesito es esto: Estoy utilizando ajax via jquery en algunas ...
  #1 (permalink)  
Antiguo 18/07/2013, 13:46
 
Fecha de Ingreso: febrero-2004
Ubicación: Guatemala
Mensajes: 117
Antigüedad: 20 años, 2 meses
Puntos: 2
optimizar resultados html

Hola amigos, no estoy seguro que el titulo de mi tema sea claro, lo que necesito es esto:

Estoy utilizando ajax via jquery en algunas aplicaciones, resulta que tengo un caso particular donde la parte de procesamiento de informacion, a pesar de ser muchas instrucciones, lo realiza entre 5 y 8 segundos, pero debe desplegar unas 4000 lineas en html. Por ser jquery, espera a tener todo para presentar la información.

En conecciones rapidas no es mucho el problema, pero en otras los usuarios han reportado que el explorador les indica que ya paso mucho tiempo, ya que es al final cuando todo esta lista que aparecen todas las lineas de un solo.

Existe alguna forma de que a pesar de usar ajax, el resultado html se vaya mostrando paulatinamente? o que opciones hay de barras de porcentaje de proceso?

Gracias.
  #2 (permalink)  
Antiguo 19/07/2013, 01:50
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizar resultados html

Buenas,

Puedes hacer que AJAX sea asíncrono y entonces el usuario no notaría nada durante la descarga. Pero a la hora de crear el HTML... La única manera de optimizarlo sería convertir ese código a javascript clásico (créeme, puede ser hasta 800 veces más rápido que jQuery).

Te podría ayudar más viendo tu código ;)

Un saludo ;)
  #3 (permalink)  
Antiguo 19/07/2013, 08:10
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: optimizar resultados html

Cita:
Iniciado por 3nr1c Ver Mensaje
La única manera de optimizarlo sería convertir ese código a javascript clásico (créeme, puede ser hasta 800 veces más rápido que jQuery).
Todavia no viste el código y ya afirmas que es porque usa jQuery. De investigador pasarias bastante hambre.

Cuando el navegador te tira un alerta de script, es porque estás bloqueando el hilo de ejecución con JavaScript.

Se puede ver el código?
__________________
blog | @aijoona
  #4 (permalink)  
Antiguo 19/07/2013, 13:55
3nr1c
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: optimizar resultados html

Cita:
Iniciado por jluishg Ver Mensaje
Por ser jquery, espera a tener todo para presentar la información.
  #5 (permalink)  
Antiguo 19/07/2013, 14:08
Avatar de Trublux  
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 355
Antigüedad: 13 años, 6 meses
Puntos: 48
Respuesta: optimizar resultados html

Tardar 5 u 8 segundos es demasiado. ¿Por qué no paginas los resultados?.
__________________
eZ Publish Developer Basic Legacy
eZ Publish Developer Basics (4.4)
Alojamientos rurales en España
  #6 (permalink)  
Antiguo 19/07/2013, 14:37
Avatar de 0123  
Fecha de Ingreso: noviembre-2012
Ubicación: Entre la consola, el coda y un poco de photoshop
Mensajes: 263
Antigüedad: 11 años, 5 meses
Puntos: 10
Respuesta: optimizar resultados html

Hola jluishg,

No se con que lenguaje realizas la consulta de las 4000 lineas, si es con PHP, podrias liberar el buffer para que el contenido te llegue "poco a poco". Por que supongo que no solo demorara 8 segundos por el Javascript. Seguramente los procesos del servidor ralenticen el asunto.

Respecto al Javascript, yo no uso JQuery. Pero hace poco tuve que realizar una consulta de unas 20.000 lineas y lo solucione llamando de 100 en 100. Cuando me llegaban las primeras 100 llamaba a las siguientes 100, asi constantemente hasta terminar.

Es una solucion, creo.

Es facil saber quien tiene la culpa de esos segundos. Realiza la consulta con 100 lineas, y si no notas tanta espera... es que es culpa del servidor. Dudo que el navegador en renderizar esa información o parsear con javascript se alargue tanto.

Aunque nunca se sabe!

Un saludin!
  #7 (permalink)  
Antiguo 19/07/2013, 16:01
Avatar de Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: optimizar resultados html

@3nr1c

Y le crees? Para mi es evidente que el problema surge de un conjunto de malas decisiones.
__________________
blog | @aijoona
  #8 (permalink)  
Antiguo 23/07/2013, 06:41
 
Fecha de Ingreso: febrero-2004
Ubicación: Guatemala
Mensajes: 117
Antigüedad: 20 años, 2 meses
Puntos: 2
Respuesta: optimizar resultados html

Hola amigos, gracias por su respuestas. La situacion es esta:

se requiere mostrar un listado de articulos con información historica y por requerimiento del cliente desean verlo de un solo, no en paginas. El proceso se resume asi:

1. se presenta un pantalla con algunas opciones para el usuario, donde dependiendo de algunas opciones puede generar entre 4000 o 6000 lineas en el resultado. Via jquery se ejecuta los calculos y el despliegue.
2. Como part de los calculos, se realiza una primera consulta de los articulos que se necesitan ver, el resultado se pasa a un array.
3. se realizan unas 4 consultas mas para generar informacion y a gregarla al array. Esto es por que debe revisarse información de varios anios que se encuentra en tablas historicas de aplicaciones anteriores pero siempre en mysql. Igual son resultados de miles de lineas.
4. los dos puntos anteriores dilatan entre 3 y 5 segundos en conecciones 512, en otras mas rapidas tarda 1 o 2 segundos.
5. Lo tardado es el despliegue del resultado, el cual se realiza con un simple

foreach( myarray as myrow)
<tr>despliego row </tr>
endforeach

Se que paginando podria mejorar la situación pero el cliente lo quiere en un despliegue completo, de allí mi consulta para ver si alguien ha tenido una situación similar.

Gracias nuevamente.

Etiquetas: ajax, html, jquery, resultados
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 02:24.