begin process at 2010 02 10 16:57:27
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Astuces

 > ETAGS, UN GAIN DE TEMPS.

ETAGS, UN GAIN DE TEMPS.


 Information sur la source

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Astuces Niveau :Débutant Date de création :01/09/2002 Date de mise à jour :01/09/2002 17:48:15 Vu :4 130

Auteur : CrowEye

Ecrire un message privé
Site perso
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.


 Sources du même auteur

TIPS: RÉCUPÉRER SON IDENTIFIANT CARAMAIL.
REMPLACER UN MOT DANS UNE PAGE.
PAGING: EXPLICATION BASIQUE.
ACCELERER L'AFFICHAGE DE VOS PAGES
GÉNÉRER UNE GALLERIE D'IMAGES

 Sources de la même categorie

Source avec une capture PAGINATION EN PHP par Orangina
Source avec Zip POO - DEBUGGER par DiGhan
Source avec Zip CRAWLER DE SITE EN PHP par Mcjo
DÉCOUPAGE D'UN TEXTE EN FONCTION DES SAUTS DE LIGNES par biloubil
RÉCUPÉRER LE CHEMIN RELATIF D'UN OBJET PAR RAPPORT À LA RACI... par FredPsy

Commentaires et avis

Commentaire de CrowEye le 01/09/2002 17:50:07

ben zut alors, ya des fautes ...

Commentaire de Kirua le 02/09/2002 11:43:52

c corrigé maintenant?

Commentaire de CrowEye le 02/09/2002 17:23:00

fautes d'orthographe :)

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales