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

PHP & Base de données Discussion :

Cache data coté client.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut Cache data coté client.
    Bonjour a tous

    Je m'excuse si je n'ai pas posté dans la bonne catégorie,

    Je suis actuellement débutant en développement web.

    J'ai actuellement une requête ( bdd MYSQL) qui est assez lourde et que j'aimerai mettre en cache du coté client car les données n'évoluent pas tous les jours ( je dirai même qu'elles vont évoluer 3 fois par mois).

    Comment faire ?

    A savoir ...
    J'aimerai créer un fichier (xml ? ou autre) avec une date d'expiration ( genre 96 Heures) qui sera chargé et recréé tous les 96 h via ma requette mysql.

    Ce fichier serait alors utilisé plutot que ma requette sql

    Des idées sur comment arriver a un tel résultat ? (j'avoue me perdre un peu sur la maniere de faire, car le php s'execute du coté serveur, et le javascript coté client).

    En gros je voudrais ecrire une table html a partir d'un fichier stocké coté client, mais ce fichier sera réécrit tous les XX heures en checkant la date de validité.

    Par avance, merci pour tout aide.

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    ... les données n'évoluent pas tous les jours ( je dirai même qu'elles vont évoluer 3 fois par mois).
    ...
    mais ce fichier sera réécrit tous les XX heures en checkant la date de validité
    Heuuuu ... là j'ai pas tout compris
    C'est 3 fois par mois ou toutes les heures ?


    Tu donne dans les grandes ligne le principe, à part quand même qu'il ne sera pas possible de le créer coté client.
    On ne peu pas créer de fichier à ce niveau là, fort heureusement.

    Mais génère par exemple le résultat HTML qui lui sera basé du contenu de la Bdd (de la grosse requête).

    En somme, le principe peu être simple :
    Si le fichier n'existe pas ou qu'il existe mais que sa date est périmée -> On (re)crée le fichier HTML sur le serveur.
    Pour la date, c'est celle du fichier (fonction filemtime()), et d'un délai fixé à l'avance (comme environ 1 semaine dans ton cas).

    Ensuite, suffit d'inclure le fichier, dans une page (ce qui est très courant) ou si c'est une page entière, la retournée telle quelle.
    C'est du HTML, donc ça revient presque au même qu'un site statique.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut
    Salut et merci pour les précisions.

    Je précise un peu :

    En fait les données transférées comportent pas mal de texte (bcp bcp) et donc la taille de la page transférée est au final trop grosse. --> 780 Ko !!

    Ce que je veux cacher est en fait le tableau HTML ou sont stockées les données.

    Mais je ne veux pas le mettre en cache sur le serveur, car a chaque fois les 780 ko vont être chargés.

    Je veux le mettre en cache du coté client pour éviter de le re-télécharger a chaque accès a la page, et rafraichi une fois par semaine et/ou forcé.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Je veux le mettre en cache du coté client pour éviter de le re-télécharger a chaque accès a la page, et rafraichi une fois par semaine et/ou forcé.
    Ok, mais sauf erreur, il n'est pas possible d'écrire sur le poste client.

    Enfin, si, et la seule c'est de mettre un contenu dans un cookie.
    Malheureusement, la taille d'un cookie est extrêmement limité (il me semble que ça dépasse guère les 10 Ko).
    Puis ici, ce rajoute pas mal de problèmes, comme ne pas du tout être garanti que le poste client conserve les cookies.
    Puis les cookies me semblent pas être une alternative pour ce genre de problème.
    Je l'évoque quand même, vu que c'est le seul moyen que je connaisse pour mettre quelque chose coté client.


    Du coup, je n'ai pas d'autres solutions à te proposer que celle évoquée au post précédent.



    A coté de ça, 780 Ko pour 1 seule page, c'est un peu beaucoup, effectivement.
    Comme ça, vite dit, est ce obligatoire ?
    N'y a t-il pas moyen de la diviser en plusieurs parties, faire une petite navigation, genre en 3, 4 ou 5 pages ?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 5
    Par défaut
    hmmm

    C'est bien ce dont j'avais peur.
    Il me semble que la seule solution serait du vbscript mais pour cela il faut abaisser le niveau de sécurité du browser.

    Bref

    Alors pkoi je suis dans une telle situation ?

    Je developpe un deckbuilder pour un jeu de cartes.

    J'utilise deja de l'ajax et jquery pour la gestion du deck afin de ne pas recharger la page a chaque ajout de carte.

    Et comme c'est un deckbuilder, le joueur est succeptible d'ajouter nimporte quelle carte et donc je les charge toutes. ( avec différents filtres dynamiques / tri / etcetc possible bien sur pour cela soit utilisable ).

    En ce qui concerne mettre en cache le tableau du coté serveur je viens de le faire. C'est toujours ca de gagné c'est certain.

    Merci en tout cas pour ton aide.

    Cordialement

    Chgros

Discussions similaires

  1. Annuler la mise en cache coté client
    Par gael dans le forum Langage
    Réponses: 0
    Dernier message: 17/09/2010, 14h10
  2. [C#] Vider le cache d'un client
    Par dupin40 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/09/2007, 11h21
  3. Probléme cache avec IE et XML/XSL coté client.
    Par rataflo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 06/08/2005, 19h06
  4. [Indy] Intercepter les messages coté client
    Par PpPool dans le forum Web & réseau
    Réponses: 6
    Dernier message: 04/07/2005, 10h19
  5. [Concept] Curseur coté client et curseur coté serveur
    Par freud dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 13/09/2002, 22h13

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