Temporisation... PATIENTEZ SVP Comment procéder ?

Temporisation... PATIENTEZ SVP Comment procéder ? - PHP - Programmation

Marsh Posté le 28-03-2008 à 14:20:39    

Bonjour
Voici ma page, il s'agit d'un tableau qui affiche toutes les requetes postées sur un moteur de recherche par ordre de nombre de demandes
http://erwann.conan.free.fr/voir_requetes.php
Si vous allez voir vous vous rendrez compte (surtout sous IE [désolé]) que ça rame quelques secondes avant que, d'un seul coup, VRAMMM, tout s'affiche.
 
Donc ce que je voudrais faire, c'est créer une sorte de temporisation qui invite le visiteur à patienter le temps que ça s'affiche.
Le problème, TOUT s'affiche d'un seul bloc. J'ai bien à un moment un code PHP qui va rechercher dans la BdD les infos mais avant ça, j'affiche en HTML quelques trucs (textbox etc)
Peut-on glisser un "truc" dans le code ?
Y a-t-il une soluce ?
 
Merci d'avance de votre aide

Message cité 1 fois
Message édité par erwan83 le 28-03-2008 à 14:21:16

---------------
http://www.ypikay.com
Reply

Marsh Posté le 28-03-2008 à 14:20:39   

Reply

Marsh Posté le 28-03-2008 à 14:29:04    

erwan83 a écrit :

Bonjour
Voici ma page, il s'agit d'un tableau qui affiche toutes les requetes postées sur un moteur de recherche par ordre de nombre de demandes
http://erwann.conan.free.fr/voir_requetes.php
Si vous allez voir vous vous rendrez compte (surtout sous IE [désolé]) que ça rame quelques secondes avant que, d'un seul coup, VRAMMM, tout s'affiche.
 
Donc ce que je voudrais faire, c'est créer une sorte de temporisation qui invite le visiteur à patienter le temps que ça s'affiche.
Le problème, TOUT s'affiche d'un seul bloc. J'ai bien à un moment un code PHP qui va rechercher dans la BdD les infos mais avant ça, j'affiche en HTML quelques trucs (textbox etc)
Peut-on glisser un "truc" dans le code ?
Y a-t-il une soluce ?
 
Merci d'avance de votre aide


 
faire un flush régulier?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-03-2008 à 14:43:42    

yo ! je maitrise mal
 voici le code php qui traine :
 
 

Code :
  1. <?
  2. ... ... ...
  3. $select = " SELECT * FROM blablabla ";
  4. $result = mysql_query($select,$link) ;
  5. $row = mysql_fetch_row($result);
  6. $somme = " SELECT SUM(`affichages`) as `total` FROM `table` WHERE `affichages` > 0 ";
  7. $somme2 = mysql_query($somme,$link) ;
  8. $detail = mysql_fetch_assoc($somme2);
  9. echo "<tr>"; 
  10. echo '<td colspan = "4" width = 250 align ="middle">';
  11. echo blabla';
  12. echo '</td></tr>';
  13. $colonne = 0;
  14. while($row = mysql_fetch_array($result))
  15. if (0 == $colonne)   
  16. echo '<tr>'; 
  17. echo '<td width = 250 valign ="top" align= "justify">';
  18. $machin = strtolower("resultat.php?input=".$row["requete"]);
  19. print("<a class =\"option\" href=\"$machin\" target=_self>" );
  20. print(" ".strtolower($row["requete"])."</a><br>" );
  21. print(" ".$row["affichages"]." demande(s)" );
  22. echo "</td>"; 
  23. $colonne = ($colonne + 1) % 4; 
  24. if (0 == $colonne)    echo "</tr>";
  25. }
  26. if ($colonne != 0)  echo "</tr>";
  27. {
  28. }
  29. mysql_free_result($result);
  30. ?>


 
Où dois je poser ce Flush et sous quelle forme cela se traduit-il ?


---------------
http://www.ypikay.com
Reply

Marsh Posté le 28-03-2008 à 14:48:04    

http://fr3.php.net/manual/fr/function.flush.php
 
coller ça à la fin de ta boucle devrait forcer un affichage plus continu, à moins que tu n'utilises un tampon...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 28-03-2008 à 15:23:12    

yop  
merci je vais aller y faire un saut


---------------
http://www.ypikay.com
Reply

Marsh Posté le 28-03-2008 à 20:02:58    

heu... sinon y a le JS pour faire ça aussi ;)

 

en gros, je le vois comme suit :

  • ton tableau sera en display:none (propriété css qu'on peut modifier avec le js) (plutot une div qui contient le tableau).
  • t'affiche a la place une image de loading... (y'a un super site pour faire ce genre d'images) ou un simple "chargement en cours..."
  • a la fin du tableau, tu met un code JS qui forcément ne sera executé que si le tableau est complètement chargé (logique il est derrière donc ca se fait tout seul), ce js va faire 2 choses :
  • - cacher l'image de loading (on lui appliquant un display:none)
  • - afficher le tableau on appliquant un display:block sur la div le contenant.


et le tour est joué :)

 

PS. certaines optimisations peuvent être faites pour un peu d'accessibilité dans tout ça :)


Message édité par naeh le 28-03-2008 à 20:05:56
Reply

Marsh Posté le 31-03-2008 à 00:19:39    

faire sur plusieurs pages...


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Sujets relatifs:

Leave a Replay

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