Foros del Web » Programando para Internet » Jquery »

Mejorar rendimiento >> Metodo html de Jquery

Estas en el tema de Mejorar rendimiento >> Metodo html de Jquery en el foro de Jquery en Foros del Web. Hola a todos Un gran saludo Tengo un arreglo con mas o menos 6000 posiciones , hago un foreach de ese arreglo y por cada ...
  #1 (permalink)  
Antiguo 30/12/2013, 18:14
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Mejorar rendimiento >> Metodo html de Jquery

Hola a todos

Un gran saludo

Tengo un arreglo con mas o menos 6000 posiciones , hago un foreach de ese arreglo y por cada ciclo genero un codigo html , aqui el codigo


Código PHP:
Ver original
  1. $codeHTML = "";
  2. foreach($dataUsuarios as $data)
  3. {
  4.     $codeHTML .= "<tr>";
  5.         $codeHTML .= "<td>Name</td>";
  6.         $codeHTML .= "<td>{$data["name"]}</td>";
  7.     $codeHTML .= "</tr>";
  8. }



Finalmente ese data la pinto en una tabla html con Jquery

Código Javascript:
Ver original
  1. $("mitabla").html(respuesta);


Esto realentiza los navegadores, ocupa mucha memoria ese proceso... lo intente con append pero la misma vaina, aunque en Firefox se alcanza a colgar si me pinta bien los registros, pero en IE se revienta y cierra el navegador..

No se que hacer..
  #2 (permalink)  
Antiguo 30/12/2013, 18:40
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

En jQuery lo que podrías hacer es tener una variable donde tengas el objeto seleccionado.
Así evitas que se vuelva a realizar la búsqueda en el DOM.

Código Javascript&#8221:
Ver original
  1. }</td>";
  2.     $codeHTML .= "</tr>";
  3. }
  4. $codeHTML .= “</tbody>”;
  5. $codeHTML = “</table>”;

Puse el thead y el renglón (tr) y columna (td) del encabezado en distintos renglones para la lectura, lo puedes poner en un solo renglón.

Es lo único que se me ocurre
Saludos.
  #3 (permalink)  
Antiguo 30/12/2013, 18:41
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

ummm… no se pegó bien el código
va la parte de javascript

Código Javascript:
Ver original
  1. $tabla = $(mitabla)
  2. $tabla.html(respuesta)
  #4 (permalink)  
Antiguo 30/12/2013, 18:43
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

Va la parte de PHP

Código PHP&#8221:
Ver original
  1. }</td>";
  2.     $codeHTML .= "</tr>";
  3. }
  4. $codeHTML .= "</tbody>";
  5. $codeHTML .= "</table>";
  #5 (permalink)  
Antiguo 30/12/2013, 18:44
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

Hola

Vale gracias , de hecho te muestro como tengo la tabla

Código HTML:
Ver original
  1.   <thead>
  2.      <tr>
  3.         <td>Nombre</td>
  4.     </tr>
  5.   <tbody id="contentRegistros"></tbody>

Código Javascript:
Ver original
  1. $(document.getElementById("contentRegistros")).html(respuesta);
  #6 (permalink)  
Antiguo 30/12/2013, 18:48
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

Otra opción que se me ocurre. Va a tardar más en visualizarse pero que a lo mejor funciona en explorer es regresar los resultados como json y con javascript procesarlos ¿ya intentaste eso?
  #7 (permalink)  
Antiguo 30/12/2013, 18:55
 
Fecha de Ingreso: marzo-2013
Mensajes: 11
Antigüedad: 11 años, 9 meses
Puntos: 1
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

En stackoverflow - http://stackoverflow.com/questions/8640692/slow-response-when-the-html-table-is-big - encontré con un jsFiddle que inserta 10,000 filas

http://jsfiddle.net/ThinkingStiff/gyaGk/

Hasta el final de la sección de JS viene el código de prueba

for (var i = 0; i < 10000; ++i) {
stck.stockInfo.push(['TESTSKU', 'A test item', i]);
}
stck.showRow(1000, false)

Tal vez te pueda servir de referencia
  #8 (permalink)  
Antiguo 30/12/2013, 20:07
Avatar de informacionsys  
Fecha de Ingreso: mayo-2011
Ubicación: Bogota D.C
Mensajes: 793
Antigüedad: 13 años, 7 meses
Puntos: 76
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

Hola,

La idea de retornar un json y procesarlo si la he pensado pero no la he hecho, creo que daria el mismo resultado.. sin embargo voy a intentar, gracias por el aporte voy a revisar como funciona el codigo http://jsfiddle.net/ThinkingStiff/gyaGk/ , y te cuento

Gracias.
  #9 (permalink)  
Antiguo 03/01/2014, 13:33
Avatar de chichote
Colaborador
 
Fecha de Ingreso: diciembre-2004
Ubicación: Santiago - Chile
Mensajes: 1.868
Antigüedad: 20 años
Puntos: 145
Respuesta: Mejorar rendimiento >> Metodo html de Jquery

y no has pensado en paginacion? traer 6mil registros con un salo dato (ejem: el nombre) te pesaria unos 250 a 300kb, si le sumas un par de datos mas como apellidos, email, etc (o que se yo) te puede superar facilmente 1MB.

Yo optaria por json pero con busquedas parcializadas, por ejemplo con un scroll infinito, a medida que vas bajando en tu pagina se vayan haciendo nuevas peticiones al servidor.

Saludos.
__________________
http://chicho.ninja yiaaaa

Etiquetas: html, mejorar, metodo, rendimiento
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 13:37.