Catégorie Javascript - posté le 08/03/09 10:39:07
function creation_barre_chargement( lien)Un exemple d'appel est disponible sur cette page: barre de chargement pourcentage en javascript.
{
// Creation du fond grisé
var back= document.createElement('DIV');
back.style.position='absolute';
back.style.top='0px';
back.style.left='0px';
back.style.width='100%';
back.style.height='100%';
back.style.background='white';
back.style.opacity='0.8';
back.style.filter='alpha(opacity=80)';
// Creation de la barre de chargement
var div= document.createElement('DIV');
div.style.position='absolute';
div.id='barre_chargement';
div.style.width='40%';
div.style.marginLeft='30%';
div.style.marginTop='10%';
div.style.border="1px solid black";
div.style.background="#d0d0d0";
div.style.height='20px';
// Creation de l'avancement de la barre de chargement
var p= document.createElement('P');
p.style.margin='0px';
p.style.width='0px';
p.style.padding='0px';
p.style.borderLeft='1px solid #333';
p.style.height='100%';
p.style.background='green';
p.style.fontWeight='bold';
p.id='pourcentage_accompli';
p.style.textAlign='right';
// Texte de l'avancement de la barre de chargement
var txt= document.createTextNode('0%');
// Ajout des elements DOM
p.appendChild(txt);
div.appendChild(p);
back.appendChild(div);
document.body.appendChild(back);
// Gestion de la récuperation du fichier
myAjax=new Ajax.Request( lien.href, {
method: 'get',
onInteractive : function(response)
{
if(response.getHeader('Content-Length')!='')
{
var pourcentage=$('pourcentage_accompli').getWidth()/$('barre_chargement').getWidth()*100;
pourcentage+=1;
}
else
{
var pourcentage= myAjax.transport.responseText.length/response.getHeader('Content-Length')*100;
}
if(pourcentage>100)
{
pourcentage=0;
}
$('pourcentage_accompli').style.width=pourcentage+'%';
$('pourcentage_accompli').firstChild.nodeValue=pourcentage.toFixed(2)+'%';
},
onSuccess: function() {
document.location.href='#'+lien.href;
document.body.update(myAjax.transport.responseText);
}
});
}
Event.observe(window, 'load', function()
{
$$('.loading_item').each(
function(item)
{
item.onclick= function() { creation_barre_chargement(item); return false; }
}
);
});
$html="
blah blah blah
bah blah blah
bah blah blah
blah blah bla
blah blah bla
";
header("Content-Length:".strlen($html));
foreach(preg_split("/[\r\n]/",$html) as $v_text)
{
print "$v_text\n";
flush();
sleep(1);
}
5 commentaire(s) javascript ajax loading dhtml chargement pourcentage barre