Etags, un gain de temps.

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 023 fois - Téléchargée 28 fois

Contenu du snippet

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 / Exemple :


<?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 <?php require_once("jrcache.php"); ?> dans le haut de la page, et <?php jrcache_done(); ?> tout à la fin.

A voir également

Ajouter un commentaire

Commentaires

CrowEye
Messages postés
26
Date d'inscription
dimanche 9 septembre 2001
Statut
Membre
Dernière intervention
23 janvier 2006
-
ben zut alors, ya des fautes ...
cs_Kirua
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008
-
c corrigé maintenant?
CrowEye
Messages postés
26
Date d'inscription
dimanche 9 septembre 2001
Statut
Membre
Dernière intervention
23 janvier 2006
-
fautes d'orthographe :)

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.