Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/01/2010, 11:20
Sidh
 
Fecha de Ingreso: marzo-2006
Mensajes: 8
Antigüedad: 18 años, 2 meses
Puntos: 0
Una cuestion de rendimiento.

Saludos a todos.
No voy a formular una duda "al uso" mas bien me gustaria conocer las diversas opiniones que todos los foreros con experiencia puedan o quieran aportar.
Les explico el caso:

Resulta que tenemos un proyecto de monitorizacion de trafico de red echo en 100% PHP. Segun el cliente monitorizamos mayor o menor volumen de registros obtenidos de una base de datos. El caso es que hay clientes que tienen un elevado numero de resultados y detectabamos grandes tiempo de espera a la hora de cargar los datos (o bien el servidor, o bien la red, que nos han asignado no es gran cosa y se forman unos cuellos de botella de escandalo).
Por lo que decidimos paginar los resultados e ir haciendo pequeñas peticiones mediante ajax, en segundo plano, para aumentar el rendimiento de cara al cliente.

Y ahi es donde nos ha surgido la duda pues tenemos dos opciones (olvide decir que usamos la libreria xajax).

Opcion A:
Generamos el codigo html en el servidor y enviamos el resultado al cliente para que este se pinte en su navegador (siendo por lo tanto mayor el volumen de trafico en la salida del servidor al incluir contenido htm,l pero entendemos que es menor el tiempo en que tarda en "pintarse" en el navegador ya que no tiene que hacer ninguna operacion mas alla de mostrar el contenido recibido desde el servidor)

Servidor->Consulta BD->Resultado de la consulta->Maquetamos HTML->Enviamos al cliente->Pintamos el resultado


Opcion B:
Armamos un array con los resultados devueltos en la consulta a la BD, Se lo devolvemos al cliente y ejecutamos una funcion javascript en el cliente (a través del método call) para que desde el mismo cliente se maquete el código html y se pinte en la capa que le indiquemos en el código de la función.

Servidor->Consulta BD->Resultado de la consulta->Enviamos al cliente->Maquetamos HTML->Pintamos el resultado.


A priori la opcion B parece la mas rentable en redimiento (reducimos el tiempo de proceso en el servidor y reducimos el volumen de tráfico que enviamos por la red), pero nos surge la duda si ese tiempo que ganamos en trafico y tiempo de proceso en el servidor no lo vamos a perder en tiempo de proceso en el cliente (a priori entendemos que un cliente va a tener recursos mas limitados en proceso que el que pueda tener un servidor).

Me gustaria conocer sus opiniones.
¿Que creen que es mas rápido de cara al cliente?