begin process at 2008 05 16 04:36:24
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

ETAGS, UN GAIN DE TEMPS.


Information sur la source

Catégorie :Astuces Niveau : Débutant Date de création : 01/09/2002 Date de mise à jour : 01/09/2002 17:48:15 Vu : 3 021

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (3)
Ajouter un commentaire et/ou une note

Description

jrcache .. pour ceux qui ne connaissent pas, jrcache est un code permettant un cache de page.

Le principe est simple, le client envoit ,si auparavant il a visité la page, une entete appellée "Etags". Les informations que cette entete fournit est à comparer avec l'entete "Last Modified" qui définit quand la page a été modifiée pour la dernière fois. Je m'explique, l'information que l'entete "Etags" envoit est le code html de la page demandée cryptée en md5(), enfin pour etre simple c ça & un etags est composé de 32caractères. Le serveur, lui, recoit l'etags, crypte la page demandée & compare avec l'etags recu; si l'etags recu & l'etags du serveur sont identiques, la page n'a pas changé & le serveur renvoit une erreur 304, qui signifie que le navigateur peut affichier la page qu'il a dans son cache sinon le serveur envoit la page avec son nouvelle Etags.

C pas compliqué.

Source

  • <?php
  • ob_start();
  • ob_implicit_flush(0);
  • function jrcache_done()
  • {
  • global $HTTP_SERVER_VARS;
  • $contents = ob_get_contents();
  • ob_end_clean();
  • $m = '"jrc-' . md5($contents) . '"';
  • header("ETag: $m");
  • $inm = stripslashes($HTTP_SERVER_VARS["HTTP_IF_NONE_MATCH"]);
  • if (strstr($inm, $m)) {
  • // ETag hasn't changed, return "304 Not Modified"
  • header("HTTP/1.0 304");
  • } else {
  • echo($contents);
  • }
  • exit;
  • }
  • ?>
<?php


ob_start();
ob_implicit_flush(0);

function jrcache_done()
{
     global $HTTP_SERVER_VARS;
     $contents = ob_get_contents();
     ob_end_clean();
     $m = '"jrc-' . md5($contents) . '"';
     header("ETag: $m");
     $inm = stripslashes($HTTP_SERVER_VARS["HTTP_IF_NONE_MATCH"]);
     if (strstr($inm, $m)) {
          // ETag hasn't changed, return "304 Not Modified"
          header("HTTP/1.0 304");
     } else {
          echo($contents);
     }
     exit;
}

?> 
 


Conclusion


Placer &lt;?php require_once("jrcache.php"); ?&gt; dans le haut de la page, et &lt;?php jrcache_done(); ?&gt; tout à la fin.
  • signaler à un administrateur
    Commentaire de CrowEye le 01/09/2002 17:50:07

    ben zut alors, ya des fautes ...

  • signaler à un administrateur
    Commentaire de Kirua le 02/09/2002 11:43:52

    c corrigé maintenant?

  • signaler à un administrateur
    Commentaire de CrowEye le 02/09/2002 17:23:00

    fautes d'orthographe :)

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Boutique

Boutique de goodies CodeS-SourceS