Foros del Web » Creando para Internet » HTML »

intentar que esta página pese menos.

Estas en el tema de intentar que esta página pese menos. en el foro de HTML en Foros del Web. hola a todos : Tengo un código que repite en cada linea esto: onclick="parent.cambiar(this.href);return false" y resulta de que según que letra se pulse puede ...
  #1 (permalink)  
Antiguo 03/07/2004, 10:22
 
Fecha de Ingreso: junio-2004
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
intentar que esta página pese menos.

hola a todos :

Tengo un código que repite en cada linea esto: onclick="parent.cambiar(this.href);return false" y resulta de que según que letra se pulse puede llegar a tener más de 10.000 lineas, por lo tanto sólo con esa parte del código, la página pesa 500 Kb. (y toda la página más de un mega) y se hace muy lenta.
Mi pregunta es si se puede poner esto sólo una vez y que haga el mismo efecto.

Aquí pongo un trocito de código, porque si lo pongo entero .......................
Código HTML:
<TABLE WIDTH="98%" border=0><TR><TD>
<li>zz top - top guns <a title=" (63 Kb.) " href="Audio/z/zz_top_-_top_guns_back.jpg" onclick="parent.cambiar(this.href);return false">back</a>      
<li>zz top - tres hombres <a title=" (85 Kb.) " href="Audio/z/zz_top_-_tres_hombres_back.jpg" onclick="parent.cambiar(this.href);return false">back</a>     
<li>zz top - tres hombres <a title=" (44 Kb.) " href="z/zz_top_-_tres_hombres_front.jpg" onclick="parent.cambiar(this.href);return false">front</a>      
<li>zz top - viva las vegas <a title=" (114 Kb.) " href="Audio/z/zz_top_-_viva_las_vegas_back.jpg" onclick="parent.cambiar(this.href);return false">back</a>      
<li>zz top - xxx <a title=" (142 Kb.) " href="Audio/z/zz_top_-_xxx_back.jpg" onclick="parent.cambiar(this.href);return false">back</a>        
<li>zz top - zz tops first album <a title=" (102 Kb.) " href="Audio/z/zz_top_-_zz_tops_first_album_back.jpg" onclick="parent.cambiar(this.href);return false">back</a> 
...................
...................
  </TD></TR></TABLE> 
Espero que no sea muy difícil.
Un saludo y gracias.
__________________
Colaborador de
www.alicun.com

Última edición por eusol; 03/07/2004 a las 10:25
  #2 (permalink)  
Antiguo 03/07/2004, 10:29
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
Buenas,

la verdad es que con omitir esos onclick no vas a lograr que se aligere mucho el peso. La diferencia sería mínima. La solución más adecuada, creo yo, sería que paginaras los resultados por letra, es decir, que mostrara los resultados de 20 en 20 por ejemplo.

Eso sale de una base de datos?
  #3 (permalink)  
Antiguo 03/07/2004, 10:52
 
Fecha de Ingreso: junio-2004
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
Bueno,
si sale de una base de datos y del directorio tambien segun se seleccione antes, pero paginar de 20 en 20 una tabla de 10.000 lineas debe ser mas molesto para el que busque que esperar a que cargue la página.
y si se aligera el peso, ejemplo una página con 1M2 quitandole esa parte pesa 700 kb.
por eso es mi intención quitar esa parte
salu2
__________________
Colaborador de
www.alicun.com
  #4 (permalink)  
Antiguo 03/07/2004, 11:00
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
Si me preguntas a mi como usuaria, te diría que prefiero mil veces resultados paginados, sean de 20 en 20 o de 50 en 50, da igual, que una página de 700 kb.

De todas formas, te advierto, se puede hacer lo que quieres, pero no funcionaría hasta que estuviera cargado del todo el documento, así que si alguien pinchara en un link antes de cargar del todo no se activaría el javascript.

Lo quieres igual?
  #5 (permalink)  
Antiguo 03/07/2004, 11:18
 
Fecha de Ingreso: junio-2004
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
No, si va a tardar casi igual, no, lo que si me haría falta es un buen paginador para poner de 1000 en 1000, porque resulta que esto es para una web de portadas y si vas buscando una en una paginacion de 20, pues habra que ir probando hasta llegar a la que la tenga. y seguro que abriras un montón
__________________
Colaborador de
www.alicun.com
  #6 (permalink)  
Antiguo 03/07/2004, 11:32
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
No tienes puesto un buscador?

mira, si quisieras que no se escribieran esos onclick, y que funcionaran igual habrías de poner una función parecida a esta (o esta misma)

Código:
<script language="JavaScript" type="text/javascript">
function cambia(){
for(m=0;m<document.getElementsByTagName('a').length;m++){
	if(document.getElementsByTagName('a')[m].parentNode.tagName.toLowerCase()=='li')
	document.getElementsByTagName('a')[m].onclick=function(){parent.cambiar(this.href);return false}
	}
}
window.onload = cambia
</script>
Con eso te puedes ahorrar todos los onclick, se generarían dinámicamente una vez el documento estuviera cargado del todo, pero como te comentaba, no funcionaría hasta terminar de cargarse el documento del todo.

Cuando se busca algo muy concreto se suele usar un buscador, y cuando se cargan las páginas con el listado por letra suele ser "pa ver qué hay"

En tu lugar, realmente, usaría un paginador y además pondría un pequeño buscador
  #7 (permalink)  
Antiguo 03/07/2004, 14:16
 
Fecha de Ingreso: junio-2004
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
Si, claro que tengo buscador, pero mucha gente pulsa la letra para como tu dices ver que hay. (se nota que no has visitado nunca alicun.com)
Probaré el script ese a ver que tal, pero te comento que esa pagina se carga en un iframe y la pagina que llama al iframe lleva este script:

Código PHP:
<script language="javascript">
function 
cambiar(cual){
document.getElementById('ima').src cual
aa
=cual.split("_")
aa[aa.length-1]
a.split(".")[0].toLowerCase()
if(
b=="frontbig"){
document.getElementById('ima').width=182
document
.getElementById('ima').height=100
}
else{
if(
b=="back" || b=="back1" || b=="back2" || b=="back3" || b=="back4" || b=="back5" || b=="inlay"){
document.getElementById('ima').width=182
document
.getElementById('ima').height=155
}
else{
document.getElementById('ima').width=182
document
.getElementById('ima').height=182
}
}
}
</script> 
Casi me lo hiciste tu, lo recuerdas?
Y entoces te pregunto denuevo el nuevo script tiene que ir dentro del iframe o en la pagina que lo llama?
Y no se entorpecerán los dos?
salu2
__________________
Colaborador de
www.alicun.com
  #8 (permalink)  
Antiguo 03/07/2004, 14:26
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 23 años, 2 meses
Puntos: 381
Cita:
Casi me lo hiciste tu, lo recuerdas?
yesss lo recuerdo

El código que te he pasado debe ir dentro de la página que carga dentro del iframe
  #9 (permalink)  
Antiguo 03/07/2004, 15:09
 
Fecha de Ingreso: junio-2004
Mensajes: 35
Antigüedad: 20 años, 5 meses
Puntos: 0
Bien, bien.... te cuento.:

Audio letra A (6.664 portadas) tenía 1001 kb el htm, con la modificación se ha quedado en 682 kb.
Antes tardaba en cargar 50" ahora 38" (Ya hemos ganado algo).

En IE no hay problema porque no muestra nada hasta que cargue, pero en netscape sucede lo que habías mencionado antes, si alguien le pica antes de que termine de cargar, muestra la portada en el mismo iframe y no en el cuadrito aquel, recuerdas? (img).

Pero he pensado que se podría hacer algo para que no funcione hasta que no cargue, como por ejemplo si picas antes de que cargue que salga un alert diciendo "espera un momento".
Seguro que tu puedes hacerlo tunait, yo seguro que no, por eso esperaré tu contestación

salu2
__________________
Colaborador de
www.alicun.com
  #10 (permalink)  
Antiguo 04/07/2004, 03:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 8 meses
Puntos: 772
Hola, eusol.

Así en plan rápido se me ocurre que podrías cambiar los enlaces por <span>

<span title=" (63 Kb.) " href="Audio/z/zz_top_-_top_guns_back.jpg">back</span>

y en la función que te puso tunait (¡hola! ) cambias: document.getElementsByTagName('a')

por: document.getElementsByTagName('span')

Si utilizas otros <span> a los que no quieres ponerlos onclick, se puede modificar un poco el código para que solo afecte a los que tienes dentro de la tabla.

Bueno, es solo una ideilla. Espero que te ayude. Saludos,
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 00:35.