Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/03/2010, 13:04
Avatar de neodani
neodani
 
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 9 meses
Puntos: 20
Remarcar cambios al recargar contenido

Buenas,

Tengo el siguiente código abro inciso ¿se puede de alguna manera más optima? cierro inciso

En este pequeño ejemplo muestro el contenido de una tabla dentro de un DIV llamado "tabla1", y cada 5 segundos recarga la tabla.

La tabla de ejemplo tiene una celda que es el precio esta es la zona que puede variar. Mi intención es marcar de alguna forma cuando el precio baje o suba.

La pregunta... creéis que esto lo debo hacer en el propio código donde se crea la tabla (datos_ajax.php) o en el script principal que llama a la función ajax (script.php)?

La siguiente sería, cómo implementarlo, alguna idea?

La tabla se generaría de forma automática leyendo los datos de la base de datos, tendría que hacer un script que cada 5 segundos me generase el fichero datos_ajax.php verdad?
Pero si tuviese que tener 200 tablas de precios, tendría que cada 5 segundos generar los 200 ficheros uno para cada tabla distinta? ¿se hace así en la realidad? o me estoy flipando... xD me parece muy heavy!

Muchas gracias de antemano!


datos_ajax.php
Código HTML:
Ver original
  1. <table border="1">
  2. <tr>
  3.     <th>Producto</th>
  4.     <th>Precio</th>
  5. </tr>
  6. <tr>
  7.     <td>Manteca</td>
  8.     <td>4.00</td>
  9. </tr>
  10. <tr>
  11.     <td>Leche</td>
  12.     <td>2.50</td>
  13. </tr>

script.php
Código PHP:
Ver original
  1. <html>
  2.   <head>
  3.   <title>Obteniendo datos con AJAX sin recargar pagina</title>
  4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. </head>
  6. <script language="javascript"  type="text/javascript">
  7. var RequestObject = false;
  8.   var Archivo = 'datos_ajax.php'; //directorio donde tenemos el archivo ajax.php
  9.   window.setInterval("actualizacion_reloj()", 5000); // el tiempo X que tardará en actualizarse
  10.   if (window.XMLHttpRequest) //
  11. RequestObject = new XMLHttpRequest();
  12. if (window.ActiveXObject)  
  13.   RequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  14. function ReqChange() {
  15. // Si se ha recibido la información correctamente
  16.   if (RequestObject.readyState==4) {
  17.   // si la información es válida
  18.       if (RequestObject.responseText.indexOf('invalid') == -1)
  19.       {
  20.       // obtener la respuesta
  21.       var msgs = RequestObject.responseText.split('|');
  22.       // Buscamos la div con id online
  23.       document.getElementById("tabla1").innerHTML = msgs[0];
  24.       }
  25.       else {
  26.       // Por si hay algun error
  27.       document.getElementById("tabla1").innerHTML = "Error llamando";
  28.       }
  29.   }
  30. }
  31. function llamadaAjax() {
  32.  // Mensaje a mostrar mientras se obtiene la información remota...
  33.   //document.getElementById("tabla1").innerHTML = "";
  34.   // Preparamos la obtención de datos
  35.   RequestObject.open("GET", Archivo , true);
  36.   RequestObject.onreadystatechange = ReqChange;
  37.   // Enviamos
  38.   RequestObject.send(null);
  39.   }
  40.   function actualizacion_reloj() {
  41.     llamadaAjax();
  42.   }
  43. </script>
  44. <body onload="llamadaAjax();">
  45. <h2>Obteniendo datos con AJAX sin recargar pagina </h2>
  46.   <div id="tabla1"></div>
  47. </body>
  48. </html>