elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Tips para una redenderización rápida en Internet Explorer.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Tips para una redenderización rápida en Internet Explorer.  (Leído 1,557 veces)
WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.606


Sin conocimiento no hay espíritu


Ver Perfil WWW
Tips para una redenderización rápida en Internet Explorer.
« en: 12 Enero 2012, 18:50 pm »

Hay algunas cosas que funcionan bién y otras que en internet explorer andan mal.

Estaba haciendo un bloque con varios tabs y dentro de cáda tab varios checkboxes con sus textos y al pasar el mouse sobre la pestaña se veia el tab.

Todo andaba de lujo hasta que decido probar en internet explorer 8, se veia horrendamente lento, cáda ves que pasaba el mouse sobre una pestaña se demoraba como un segundo o mas en mostrar el contenido, asi que cuando pasaba el mouse sobre todas las pestañas con suerte se veian dos. el retraso era muy grande pero por suerte lo arreglé y obtube el mismo resultado con mayor rapidez solo cambiando un par de lineas.

TIP:
Internet explorer es horrendo para redenderizar, por eso lo que yo hacia era escribir el html de cáda tab y luego con jquery mostrar y ocultar el tab con show() hide(), supongo que en firefox y chrome cuando un objeto no está visible no lo redenderiza o no se como lo hará pero la cosa es que internet explorer se estaba frizando por los cientos de checkboxes totales que habian escritos, unos ocultos y otros visibles, al final solo 10 o menos se veian pero el resto estaban ocultos.

Para solucionar esto cargué cáda contenido del html en una variable de javascript de esta manera:
Código
  1. <?php
  2. $buffer = '';
  3. foreach($filters as $filter){
  4. ?>
  5. <div>
  6. <div><?php echo $this->str->toHtml($filter['filter_text']); ?></div>
  7. <div><input type="text" value="Buscar ..." /></div>
  8. <div>
  9. <?php foreach($filter['data'] as $value){ ?>
  10. <div>
  11. <label>
  12. <input type="checkbox" />
  13. <span><?php echo strtolower($this->str->toHtml($value['nombre'])); ?></span>
  14. </label>
  15. </div>
  16. <?php } ?>
  17. </div>
  18. </div>
  19. <?php
  20. $buffer .= "search['".$filter['prefix']."'] = '".str_replace(array('%','+'), array('\\x', ' '), urlencode(ob_get_contents()))."';
  21. ";
  22. }
  23. echo '
  24. <script type="text/javascript">
  25.  var search = new Array();
  26.  '.$buffer.'
  27. </script>
  28. ';
  29. unset($buffer);
  30. ?>

De esta forma tengo un array llamado "search" con el contenido de cáda bloque y en ves de hacerle show() hide() le hago un $('.contenido').html(search[item]) haciendo que cáda ves que quiera aparecer un bloque sobreescriba el que estaba antes evitando la sobrecarga de inputs.


Lo comento porque se que es una mala costumbre que muchos tenemos y teniamos al momento de escribir directamente en el html cientos de objetos cuando realmente solo se verán unos pocos y podremos ahorrarnos muchos megas de memoria en internet explorer.

Alguien le gustaría compartir mas tips para hacer que internet explorer funcione rápido y eficiente sin la necesidad de cambiar el layout o diseño de algo sino simplemente modificando el código?

Saludos :D


« Última modificación: 12 Enero 2012, 18:53 pm por WHK » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Google te dirá si tu conexión a Internet es lo suficientemente rápida para ...
Noticias
wolfbcn 0 1,303 Último mensaje 23 Enero 2014, 02:11 am
por wolfbcn
¿Cuán rápida es tu conexión de Internet?
Noticias
wolfbcn 0 1,424 Último mensaje 1 Enero 2017, 14:46 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines