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);
}
le 08/03/09 13:34:37
Je viens de voir l'exemple : c'est pas mal mais je ne vois pas trop l'intérêt à part pour alourdir une page web.
Bon niveau bug : quand tu charges une page avec ton script, si tu fais un retour en arrière, la page chargé reste à l'écran. Donc comme l'url change, il faut rafraîchir la page pour pouvoir l'afficher.
Bon sinon si tu pouvais faire pareil mais pour le traitement via le moteur php d'un script (qui serait utile pour des traitement de plusieurs seconde), là adhérerais directement !
le 24/06/09 11:24:36
ce code est interessant mais la rédaction de cet article n'est pas évidente pour les débutants?!
- ou doit-on intégrer le code .js? dans une page appart ou dans la page contenant déjà des "function" .js s'il y a?
- A quel code correspond l'appel de la fontion pour obtenir le résultat donné en exemple?
- A quoi correspond test.php?
merci de votre réponse.
le 24/06/09 13:17:53
Bonjour infogirl,
En effet, faute de retour, il se peut que mes explications ne soient pas tres tres claires.
Pour l'ensemble du code javascript, il doit se trouver dans un fichier javascript nommé par exemple "chargement.js", que vous chargerez sur la page ou se situe le lien en question.
Sur la page sur laquelle vous developpez ce script, vous devrez avoir des liens classiques html.
Ils seront automatiquement gerés, une fois le script javascript chargé.
Pour toute question précise ou demande d'astuces, hesitez pas à me contactar par mail: tfe@tfeserver.be par exemple.
le 24/06/09 13:28:03
ce code est interessant mais la rédaction de cet article n'est pas évidente pour les débutants?!
- ou doit-on intégrer le code .js? dans une page appart ou dans la page contenant déjà des "function" .js s'il y a?
- A quel code correspond l'appel de la fontion pour obtenir le résultat donné en exemple?
- A quoi correspond test.php?
merci de votre réponse.
le 05/03/10 11:25:04
Bonjour,
J'ai essayé le code en local ,j'ai une barre qui apparait et ensuite une page vide...
Ce que j'ai fait:
1.copier le code javascript dans un fichier appelé chargement.js
2.dans une page php j'ai chargé ce script et prototype.js et j'ai mis des liens vers un fichier test.php
3.le fichier test.php contient exactement le meme code php mis ci dessus...
Pkoi ma page est vide??