Foros del Web » Programando para Internet » Javascript » Frameworks JS »

preload similar al de gmail

Estas en el tema de preload similar al de gmail en el foro de Frameworks JS en Foros del Web. Saludosss amigos como hago un preload (..cargando) en AJAX similar cuando se carga el correo electronico en GMAIL o algun ejemplo por fa....
  #1 (permalink)  
Antiguo 04/12/2005, 11:00
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 21 años, 1 mes
Puntos: 0
preload similar al de gmail

Saludosss amigos como hago un preload (..cargando) en AJAX similar cuando se carga el correo electronico en GMAIL

o algun ejemplo por fa.


__________________
rocita
  #2 (permalink)  
Antiguo 05/12/2005, 09:21
perrogrun
Invitado
 
Mensajes: n/a
Puntos:
No hace falta ajax para esto, primero colocas una capa con visibility='visible' justo debajo de body y luego un scrip al final de la página poniendo visibility='hidden'.

Si quieres que aparezca en ajax, lo haces visible al principio de la funición javascript y lo ocultas cuando ajax te envíe lo que necesitas.

Ejemplo:
Cita:


<div id="div1" style="position:absolute;left:330;top:152;width:18 0;">
<fieldset >
<table align="center" width="100%" >
<tr>
<td>
<FONT size="3" face="SYSTEM"><B>RECIBIENDO DATOS...</FONT><br>
Espere un momento por favor
</td>
</tr>
<tr>
<td>
<script language="javascript" >

// Timer Bar - Version 1.0
// Author: Brian Gosselin of http://scriptasylum.com
// Script featured on http://www.dynamicdrive.com

var loadedcolor='blue' ; // PROGRESS BAR COLOR
var unloadedcolor='lightgrey'; // COLOR OF UNLOADED AREA
var bordercolor='navy'; // COLOR OF THE BORDER
var barheight=15; // HEIGHT OF PROGRESS BAR IN PIXELS
var barwidth=300; // WIDTH OF THE BAR IN PIXELS
var waitTime=2; // NUMBER OF SECONDS FOR PROGRESSBAR

// THE FUNCTION BELOW CONTAINS THE ACTION(S) TAKEN ONCE BAR REACHES 100%.
// IF NO ACTION IS DESIRED, TAKE EVERYTHING OUT FROM BETWEEN THE CURLY BRACES ({})
// BUT LEAVE THE FUNCTION NAME AND CURLY BRACES IN PLACE.
// PRESENTLY, IT IS SET TO DO NOTHING, BUT CAN BE CHANGED EASILY.
// TO CAUSE A REDIRECT TO ANOTHER PAGE, INSERT THE FOLLOWING LINE:
// window.location="http://redirect_page.html";
// JUST CHANGE THE ACTUAL URL OF COURSE :)

var action=function()
{

//window.location="http://www.dynamicdrive.com
}

//************************************************** ***//
//********** DO NOT EDIT BEYOND THIS POINT **********//
//************************************************** ***//

var ns4=(document.layers)?true:false;
var ie4=(document.all)?true:false;
var blocksize=(barwidth-2)/waitTime/10;
var loaded=0;
var PBouter;
var PBdone;
var PBbckgnd;
var Pid=0;
var txt='';
if(ns4){
txt+='<table border=0 cellpadding=0 cellspacing=0><tr><td>';
txt+='<ilayer name="PBouter" visibility="hide" height="'+barheight+'" width="'+barwidth+'" onmouseup="hidebar()">';
txt+='<layer width="'+barwidth+'" height="'+barheight+'" bgcolor="'+bordercolor+'" top="0" left="0"></layer>';
txt+='<layer width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+unloadedcolor+'" top="1" left="1"></layer>';
txt+='<layer name="PBdone" width="'+(barwidth-2)+'" height="'+(barheight-2)+'" bgcolor="'+loadedcolor+'" top="1" left="1"></layer>';
txt+='</ilayer>';
txt+='</td></tr></table>';
}else{
txt+='<div id="PBouter" onmouseup="hidebar()" style="position:relative; visibility:hidden; background-color:'+bordercolor+'; width:'+barwidth+'px; height:'+barheight+'px;">';
txt+='<div style="position:absolute; top:1px; left:1px; width:'+(barwidth-2)+'px; height:'+(barheight-2)+'px; background-color:'+unloadedcolor+'; font-size:1px;"></div>';
txt+='<div id="PBdone" style="position:absolute; top:1px; left:1px; width:0px; height:'+(barheight-2)+'px; background-color:'+loadedcolor+'; font-size:1px;"></div>';
txt+='</div>';
}

document.write(txt);

function incrCount(){
window.status="Loading...";
loaded++;
if(loaded<0)loaded=0;
if(loaded>=waitTime*10){
clearInterval(Pid);
loaded=waitTime*10;
setTimeout('hidebar()',100);
}
resizeEl(PBdone, 0, blocksize*loaded, barheight-2, 0);
}

function hidebar(){
clearInterval(Pid);
window.status='';
//if(ns4)PBouter.visibility="hide";
//else PBouter.style.visibility="hidden";
action();
}

//THIS FUNCTION BY MIKE HALL OF BRAINJAR.COM
function findlayer(name,doc){
var i,layer;
for(i=0;i<doc.layers.length;i++){
layer=doc.layers[i];
if(layer.name==name)return layer;
if(layer.document.layers.length>0)
if((layer=findlayer(name,layer.document))!=null)
return layer;
}
return null;
}


PBouter=(ns4)?findlayer('PBouter',document):(ie4)? document.all['PBouter']:document.getElementById('PBouter');
PBdone=(ns4)?PBouter.document.layers['PBdone']:(ie4)?document.all['PBdone']:document.getElementById('PBdone');
resizeEl(PBdone,0,0,barheight-2,0);
if(ns4)PBouter.visibility="show";
else PBouter.style.visibility="visible";
Pid=setInterval('incrCount()',95);


function resizeEl(id,t,r,b,l){
if(ns4){
id.clip.left=l;
id.clip.top=t;
id.clip.right=r;
id.clip.bottom=b;
}else id.style.width=r+'px';
}

</script>
</td>
</tr>
</table>
</fieldset>
</div>


Tu código




<script language="javascript">
PBouter.style.visibility = "hidden";
div1.style.visibility = "HIDDEN";

</script>
  #3 (permalink)  
Antiguo 06/12/2005, 04:33
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 21 años, 1 mes
Puntos: 2
Hola si lo vas a usar para mostrar un cartel mientras disparas algun pedido con el obj XMLHTTPRequest, lo unico que debes hacer es tener algun div (en general el que usaras para el resultado) y en la funcion donde haces el open pon:

document.getElementByID('el_div').innerHTML = 'Cargando...'; (ahora tambien usan poner el html para mostrar una animacion).

Luego el cod del open

Finalmente cuando cargas los datos replaza el contenido del div por basio o lo que quieras.

SAludos
__________________
Keep it simple and keep it fast.
  #4 (permalink)  
Antiguo 08/12/2005, 07:18
 
Fecha de Ingreso: octubre-2003
Ubicación: BolivianitA
Mensajes: 235
Antigüedad: 21 años, 1 mes
Puntos: 0
gracias .. perrogrun

.. pero tengo problemas al ver el ejemplo en Mozilla Firefox o es solo para el explorer ?
__________________
rocita
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 14:07.