[Javascrit] page de chargement

page de chargement [Javascrit] - HTML/CSS - Programmation

Marsh Posté le 07-04-2009 à 09:41:07    

Bonjour,
je souhaite afficher un message d'attente entre deux pages web. J'utilise pour cela une fonction javascript :
 
 

Code :
  1. function hideLoadingSection()
  2. {
  3.         var nodeDiv=document.getElementById("loading" );
  4. if(nodeDiv){
  5.  nodeDiv.style.display='none';
  6. }
  7. }


 
 
qui cache dans mon code HTML dès que la page est chargée:
 
 

Code :
  1. <div id='loading'>
  2.        Please wait...
  3.   </div>


(appelée dans le windows.onoad)
   
mon problème:
Cela marche parfaitement si le message affiché est de taille conséquente (genre please wait... répété 1000 fois), ou si je met une image de loading avec une taille importante elle aussi. Le chargement commence en m'affichant le loading, puis il est caché et me page apparait. Par contre, juste avec ce petit message, pas moyen, le navigateur (Firefox ou safari principalement -je n'ai pas testé sous IE ou Opera) attend la fin de ma requète pour afficher ma page avec le message directement caché... et la pb...
si quelqu'un a une idée, genre des headers à spécifier pour forcer le chargement de la page...
Merci

Reply

Marsh Posté le 07-04-2009 à 09:41:07   

Reply

Marsh Posté le 07-04-2009 à 10:11:04    

C'est tout à fait normal, le navigateur ne recevant le HTML/Javascript qu'une fois la requête terminée. Si les données à télécharger sont importantes, ton script va fonctionner, sinon, c-à-d si c'est le temps de génération qui est important, çà ne va pas fonctionner.
 
La question est : pourquoi as tu besoin de çà ?

Reply

Marsh Posté le 07-04-2009 à 10:39:09    

J'ai une grosse requete à faire au serveur qui prend pas mal de temps, et certain utilisateurs se déconnectent croyant surement que le site à planté. Je lance donc le display AVANT la requete pour mettre un message d'attente, et je veut pas que se message soit de taille importante pour pas prendre trop de bande passante. Une fois la requete terminée, je continu l'affichage sur la page en cachant le message d'attente

Reply

Marsh Posté le 07-04-2009 à 10:41:06    

au pire, même si ce n'est pas conseillé, tu as la balise meta (dans une page wait.html par exemple).

Code :
  1. <head>
  2. <meta http-equiv="refresh" content="0;URL=page-generation-lente.ext" />
  3. </head>
  4. <body>
  5. Chargement en cours...
  6. </body>

Reply

Marsh Posté le 07-04-2009 à 10:46:04    

mais pour ça je suis obligé de mettre tous mes paramètres en session, puis les recharger aprés le wait.html. j'ai pensé à cela, mais je voulais voir si il n'y avais pas un autre moyen...

Reply

Marsh Posté le 07-04-2009 à 10:49:11    

non y'a pas grand chose.
juste par curiosité, pourquoi la génération est si longue ?

Reply

Marsh Posté le 07-04-2009 à 10:53:05    

J'envoie une requête sur une base de donnée assez importante, qui me recupère pas mal d'infos, selon les paramètres fournis par l'utilisateur...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed