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 :

Cache et paramètres GET [HTML 5]


Sujet :

HTML

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 328
    Points : 823
    Points
    823
    Par défaut Cache et paramètres GET
    Bonjour à tous

    Je n'ai trouvé aucun sujet qui ressemble à mon problème, désolé si je crée un doublon.

    Voilà, je participe au développement d'une application en web (JQuery coté client / Zend coté serveur).

    Certaines pages seront accessibles hors connexion, de manière à ce que les utilisateurs puissent travailler et générer des "brouillons" qu'ils pourront enregistrer en base plus tard. Pour chaque formulaire accessible hors ligne, on a une page listant les brouillons, et une page de formulaire en cache (plus tous les fichiers nécessaires à ces deux pages).

    Si je veux permettre à l'utilisateur de faire un brouillon, pas de problème, le formulaire correspondant est dans l'application en cache, les données sont stockées via localStorage et chargées en javascript, tout roule.
    Le problème est d'en avoir plusieurs ! Pour différentier les données je donne un identifiant numérique à chaque brouillon, mais si je passe cet id en paramètre (type http://url/de/ma/page?id=1), le navigateur considère que cette page n'est pas en cache (car seule http://url/de/ma/page l'est).

    Est-ce que j'ai loupé un paramètre dans mon manifest ou est-ce que ce comportement est obligatoire ?

    Dans ce cas, je pourrais tout faire en une seule page... mais ça implique un peu de refonte et passer un id me permettrait de tout terminer en quelques minutes.
    Si quelqu'un a une ruse de sioux pour passer une info sans toucher à l'url je suis preneur.

    Bravo à tous pour ce site qui répond à mes questions depuis des années sans que j'ai eu à m'inscrire

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 328
    Points : 823
    Points
    823
    Par défaut
    Je pense que tu as mal compris la question...
    Cookies ou localStorage pas de différence, ça marche dans les deux cas (la partie sauvegarde/récupération) ! Sauf que le second n'est pas envoyé au serveur en mode connecté, ça fait moins de trafic...


    Mon problème concrètement c'est que j'ai une page en cache (stockée à l'aide d'un fichier text/cache-manifest), et que cette page doit pouvoir être ouverte plusieurs fois avec des données différentes.
    Si je passe un paramètre dans l'url, il reconnais pas la page en cache, et me redirige vers ma page fallback (qui lui dit "fonctionnalité non disponible en mode hors connexion").


    La seule solution que je vois là, c'est de faire une file de numéros de pages en attente dans mon stockage local, et de prendre la première quand ma page s'ouvre... Ca me parait bien aléatoire, qui dit que les onglets vont s'initialiser dans le même ordre que l'ordre dans lequel l'utilisateur a cliqué sur des liens ? Les onglets ne pourront ils pas accéder aux données en même temps et m'ouvrir deux fois une page ?
    Passer un paramètre dans l'url, ç'aurait été pratique.

    Edit : ha mince, je réponds à un message qui n'est plus là ... je laisse au cas où ce soit plus clair la seconde fois

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 328
    Points : 823
    Points
    823
    Par défaut
    J'ai la réponse à ma première question (in english) :
    http://www.w3.org/TR/html5/offline.h...lication-cache
    One or more resources (including their out-of-band metadata, such as HTTP headers, if any), identified by URLs [...]
    Les ressources mises en cache sont identifiées par url, donc urls différentes = fichier différents, impossible de communiquer des variables entre deux pages sauf si les urls ainsi crées ont été déclarées dans le fichier manifest.


    Je vais donc faire une file d'id dans mon stockage local, en espérant qu'il n'y ait pas de comportements hasardeux, faute de meilleure solution. Je met ça comme résolu mais je suis preneur de meilleures idées

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    328
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 328
    Points : 823
    Points
    823
    Par défaut
    Bon bon cette partie là est testée, ça roule.

    Je vous explique donc le fonctionnement, si d'autres ont le même problème :
    L'idée est donc d'enregistrer des brouillons en local d'un formulaire, qui pourront être envoyés plus tard au serveur (cas typique : interviewer des gens et enregistrer leurs réponses, même sans accès au net).

    J'ai deux pages, une liste des formulaires enregistrés et un formulaire.

    Quand je clique sur un élément de la liste, je charge une variable du stockage local (qui est un tableau ou que je vais initialiser comme tel), j'ajoute l'id de mon brouillon à la fin, et je charge la page.

    Au chargement du formulaire, je vérifie cette même variable, et je charge le premier élément du tableau.

    Problème possible :
    Je clique 1-2-3-4 en ouvrant chaque page dans un nouvel onglet, ça m'ouvre 4 onglets mais le second pourrait être initialisé plus vite et appeler l'événement $(document).ready avant le premier, les onglet seront donc dans l'ordre 2-1-3-4 au lieu d'1-2-3-4. Ce bug n'a pas pu être produit pendant les tests, mais vous connaissez Murphy autant que moi.
    C'est pas top, mais toujours mieux que d'obliger les gens à prendre des notes dans un fichier texte et à faire du copier/coller plus tard, pas forcément une bonne solution pour du grand public ceci dit.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est il possible de masquer les paramètres GET ou POST?
    Par samsso2006 dans le forum Langage
    Réponses: 15
    Dernier message: 18/04/2007, 10h44
  2. Récupérer les paramètres "GET" sous forme de String
    Par vanitom dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2007, 15h00
  3. Réponses: 13
    Dernier message: 01/10/2006, 15h52
  4. [SERVLET]Traitement de formulaire paramètres GET et POST
    Par ederf dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/05/2006, 13h56
  5. [FLASH MX2004] Récuperer paramètres GET de la page
    Par CUCARACHA dans le forum Flash
    Réponses: 8
    Dernier message: 04/10/2005, 15h12

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