IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Mise en cache de fichiers html php et css


Sujet :

HTML

  1. #21
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Pas sûr que tu es tout compris.
    Le fait qu'une page soit en php, fait, qu'elle est rechargée à CHAQUE fois, puisqu'à chaque requête de la page, le serveur la traite et l'envoi à ton navigateur, donc si tu affiches une page avec une css statique et que tu modifies la css, la css est conservée dans le cache du navigateur, même si la page est en PHP, par contre si ta feuille de style est dynamique, le cache sera remplacée sur chaque page.

  2. #22
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Le fait qu'une page soit en php, fait, qu'elle est rechargée à CHAQUE fois, puisqu'à chaque requête de la page, le serveur la traite et l'envoi à ton navigateur,
    Oui et non,
    Un serveur web n'envoie pas vraiment la page c'est la navigateur qui va la chercher.
    Le serveur web reconstruit la page quand le navigateur lui demande. Encore faut- il que le navigateur lui demande une nouvelle page, si le navigateur trouve la même en cache il est possible qu'il choisisse de ne pas faire de requête sur le serveur. Voir même chose avec un réseau avec un proxy cache.

  3. #23
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Un serveur web n'envoie pas vraiment la page c'est la navigateur qui va la chercher.


    Alors comment ton navigateur peut-il savoir qu'il doit récupérer la page traitée !

  4. #24
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Citation Envoyé par blueice
    Pas sûr que tu es tout compris.
    Le fait qu'une page soit en php, fait, qu'elle est rechargée à CHAQUE fois, puisqu'à chaque requête de la page, le serveur la traite et l'envoi à ton navigateur, donc si tu affiches une page avec une css statique et que tu modifies la css, la css est conservée dans le cache du navigateur, même si la page est en PHP, par contre si ta feuille de style est dynamique, le cache sera remplacée sur chaque page.
    Ok alors oublions le css et concentrons nous sur le php. Ceci est identique avec un echo 'texte'; avec du texte à l'interieur par exemple...

    Quand j'affiche le code source (par afficher la source) de ma page index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="style.css?1183660271" type="text/css">
    Je quitte la page, je change le fichier css, je retourne sur la page et je regarde le code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="style.css?1183660271" type="text/css">
    c'est identique ! j'actualise alors et je retourne voir le code source :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link rel="stylesheet" href="style.css?1183660329" type="text/css">
    Ca a changé... c'est bien la preuve que la page php ne s'est pas rechargée cette fois ci, non ???

    J'essaye de comprendre...

  5. #25
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Chez moi c'est tout le contraire, j'ai beau modifier la page elle n'est pas gardée et elle est mise à jour, ce qui me semble très logique !
    Tu fais un filemtime() il est normal que la requête soit envoyée au serveur.

  6. #26
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Alors comment ton navigateur peut-il savoir qu'il doit récupérer la page traitée !
    Le navigateur ne le sait pas, voila le problème ici. Et avec un proxy cache il peut ne jamais le savoir.
    La gestion de la cache varie énormément selon la config du navigateur et du réseau. Le principe est grosso modo si la resource (ici la page web) à la même URL le navigateur essaie d'éviter de faire une requête au serveur (que ce soit une page PHP, JSP ou HTML) et il va chercher celle qu'il a déjà copié sur le disque. 12monkeys a fait une belle démonstration de la problématique.

    Je te conseil donc d'ajouter un timestamp ou bout de toutes les URL.
    et d'utiliser toutes les méthodes pour désactiver la cache. Comme celle que tu as déjà trouvé comme le Pragma no cache.
    Donc les commandes de no cache dans l'en tete HTTP et dans le header HTML.
    Si tu veux tester et être sur qu'il n'y pas de cache tu peux configurer Firefox 2 pour effacer toute la cache à chaque redémarrage quand tu développe pour être sur que le mis à jour a eu lieu.
    Sinon en régle general, la cache est plutôt une bonne chose donc il faut faire attention à ne pas trop lutter contre et essayer de travailler avec elle. C'est une solution écologique, réduit la consommation de ressources réseau et CPU. donc comme l'électricité chez nous est nucléaire, la cache web réduit les déchets nucléaires.

  7. #27
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Je te promets je ne fait pas exprès

    Et c'est du à quoi ? Free peut être ??

  8. #28
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    Sans chercher très loin IE à une gestion de la cache tres etrange et Firefox à un cache tres poussé il utilise beaucoup plus qu'IE.
    Sans raison parfois IE ne veut pas rafraîchir une page, même si il est configuré avec l'option "vérifier la page à chaque passage". Avec IE il est impossible désactiver complètement la cache.

    Personnellement je ne pense pas que les FAI fournissent des pages en cache à l'insu de leur client (hors proxy bien sur).

  9. #29
    Expert confirmé
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Par défaut
    Bonjour

    En effet j'ai testé sous IE 7. Je devrais tester sous Firefox pour voir si avec lui la page .php est à chaque fois réactualisée automatiquement ou pas...

    En fait ce n'est pas pour développer que je posait la question mais bien pour savoir ce qu'il fallait faire pour que les visiteurs voient un site mis à jour (travaillant sur un site amateur destiné à un publique absolument novice en informatique et en navigation internet). C'est bien pour ça que je cherchait la solution la meilleure entre mise en cache et non mise en cache...

    En fait je pense que je vais revenir au <meta http-equiv="Expires" content="Fri, 1 Jun 2007 07:00:00 GMT">. Je cherchait une méthode plus pratique parce que là je suis obligé de gérer en avance la date des futures mise à jour quand j'intègre la date... Et vu que je ne veux pas modifier toutes les pages à chaque fois je vais intégrer cette date en php par un include...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="Expires" content="<?php include 'date_expire.include.php'; ?>">
    Qu'en pensez vous ? Une fois que la date sera expirée le navigateur recherchera la nouvelle page et donc la date d'expiration sera mise à jour...

  10. #30
    Membre très actif Avatar de magnus2005
    Profil pro
    Ingenieur SI
    Inscrit en
    Avril 2005
    Messages
    454
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingenieur SI

    Informations forums :
    Inscription : Avril 2005
    Messages : 454
    Par défaut
    C'est bonne idée. Cela fonctionne en théorie.
    Sinon si c'est pour un site web sans applicatif cela devrait être suffisant, les navigateurs gérant la cache assez correctement les 80% du temps.Pour les cas ou il ne le font généralement il "surcache" les fichiers image et les css ce qui ne donne que de petit artefact d'affichage qui sont de mon point vue de technicien négligeable (d'un point d'un commercial on tombe dans l'inacceptable )

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/09/2011, 21h21
  2. Mise à jour d'un fichier html
    Par saramery dans le forum Langage
    Réponses: 6
    Dernier message: 17/11/2008, 17h11
  3. [PDF] Transformer un fichier html/php en pdf
    Par super-java dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 05/06/2008, 20h15
  4. Aller contre la mise en cache du navigateur avec PHP
    Par sosophie dans le forum Langage
    Réponses: 3
    Dernier message: 12/01/2008, 11h14
  5. Mise en cache des fichiers Js sur IE et FF
    Par seb0634 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/10/2007, 19h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo