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

ASP.NET MVC Discussion :

ASP MVC - HTML5 Offline mode


Sujet :

ASP.NET MVC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut ASP MVC - HTML5 Offline mode
    Bonjour,

    je développe une application accessible en mode "hors ligne" en utilisant les différentes fonctionnalités d'HTML5.

    Cette application se résume à une liste de clients avec un bouton permettant de créer une commande sur ce client.

    /app/customers => /app/customers/123/orders/create (123 étant l'ID du client).

    Lorsque l'utilisateur se connecte je récupère en ajax la liste des clients puis la met dans le localStorage.
    Lorsque le serveur est offline je récupère la liste des clients à partir du localStorage.

    Jusque là tout va bien .

    Mon est problème survient lorsque j'essaye de créer une commande pour un client en étant hors ligne.
    Je tente d'accéder à l'adresse /app/customers/123/orders/create mais cette page n'étant pas spécifiée dans le manifest, je n'y arrive pas.

    Ma question est donc que dois-je spécifier dans mon manifest pour pouvoir mettre en cache une ressource dont l'URI dépend de l'ID du client.

    Merci pour votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    CACHE MANIFEST
     
    # Version 0.1
     
    CACHE:
    [...] (css, img, js)
     
    NETWORK:
    *
     
    FALLBACK:
    / offline.html
    Scripts/online.js Scripts/offline.js

  2. #2
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Salut,

    je ne comprend pas ce que tu veux faire!
    Il semblerait que tu veuilles stocker en cache les pages de chaque client?
    Je ne pense pas que ce soit une bonne idée.

    Je te conseillerai de plutot faire correspondre ton url à une action et dans celle ci tu recuperes les infos de ton client depuis ton localStorage.

    Bon courage.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut
    Désolé pour mon manque de clarté !

    Je ne souhaite évidemment pas stocker les pages de chaque clients

    Je pense qu'il y a deux choses à mettre en cache. La liste des clients :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [ 
    { id: 1, name: 'Client 1' },
    { id: 2, name: 'Client 2' },
    ]
    Et la page me permettant de créer une commande (dans laquelle j'irai chercher les infos du client dans le localStorage).

    En mode online la page me permettant de créer une commande a l'adresse suivante : /app/customers/123/orders/create (où 123 est l'ID du client).

    Lorsque j'essaye d'accéder à cette même page en mode offline, le navigateur me redirige vers /app/offline.html (FALLBACK du manifest) ce qui est normal car la page à laquelle j'essaye d'accéder n'a pas été mise en cache.

    Donc je veux juste savoir comment mettre en cache cette page.

    Merci !

  4. #4
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    En fait en relisant, ton approche est pas bonne.
    Quand tu seras en offline, tu n'accedes pas au serveur donc tu n'accedes pas aux controlleurs!!

    Donc si tu veux vraiment une version offline, tu vas devoir tout ecrire en JS!


    Dans ton manifest tu definis normalement une page vers laquelle tu rediriges s'il y a un probleme de connexion. Si tu veux faire de la gestion d'Id et d'actions, il va falloir que tu réécrives tout en Javascript...
    Jene suis pas certain que ce soit une binne idée.

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 84
    Par défaut
    La logique métier est déjà en partie écrite en javascript. Dans mon cas le controlleur est utilisé juste pour renvoyer à la vue les données du client.

    La solution serait de modifier la façon dont j'accède à mes pages devant être mise en cache et la manière d'échanger des données entre elles.

    Pour résumer :

    /app/customers/list (pour accéder à la liste des clients)
    /app/customers/orders/create (pour créer une commande)

    Lorsque je clique sur un des clients de la liste, je sauvegarde dans le localStorage le client sélectionné puis je redirige vers la page de création de commande.

    Lorsque je charge la page de création de commande je récupère dans le localStorage le client selectionné.

    Ce qui m'embête c'est que les URL perdent de leur sens, mais puis-je faire autrement ?

    Quand tu dis que tu n'est pas certain que ca soit la bonne solution, tu parles du fait de tout réécrire en javascript ? Si oui quelle autre solution ai-je pour gérer le mode offline de mon application.

    Merci de ton aide.

  6. #6
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Citation Envoyé par redkan Voir le message
    Quand tu dis que tu n'est pas certain que ca soit la bonne solution, tu parles du fait de tout réécrire en javascript ? Si oui quelle autre solution ai-je pour gérer le mode offline de mon application.

    Merci de ton aide.
    Une appli web se doit, amha, d'être et de rester connecté. Sinon il ne s'agit plus d'une application web...
    Je ne connais pas tes contraintes, mais je me serais plutot tourné vers une appli lourde avec connexion à des services WCF.

    Une appli hors ligne c'est à dire? Genre la personne sur son ordi portable dans le train sans réseau?
    Mais quand elle va faire appel à l'url, le navigateur va lui retourner une erreur comme quoi il n'est pas connecté au net...
    Et s'il y a du cache, c'est seulement le code généré qui est caché!

    Dans ton cas, tu parles de cache. Soit, mais si ton utilisateur paramètre son navigateur pour vider le cacher a chaque fois qu'il ferme le navigateur.... Au prochain demarrage les pages ne seront plus accessibles.

    Tu vas avoir des pages / du code en cache que tu ne gères pas. Tu ne sais pas si les différentes parties seront toujours en cache...

    Enfin tu dois pouvoir tout gérer depuis le JS, mais je pense que ca va etre une bonne usine a gaz

Discussions similaires

  1. ASP.NET MVC 3 en mode 32bits (iis express)
    Par durnambule dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 11/10/2012, 13h12
  2. Réponses: 1
    Dernier message: 17/11/2010, 10h53
  3. ASP MVC 2 personnalisation profile
    Par thesyd dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 16/11/2010, 16h45
  4. Update Pannel et ASP MVC 2
    Par litig dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 20/05/2010, 09h43
  5. [ASP MVC] Validation formulaire en 4 étapes
    Par zax-tfh dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/11/2009, 12h10

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