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

JavaScript Discussion :

sauvegarder des données (XML) coté client


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut sauvegarder des données (XML) coté client
    Bonjour,
    Je travaille avec un serveur web embarqué dont les capacité en terme de mémoire est très limités. Je voudrais sauvegarder les données retournées par l'objet XmlHttpRequest dans un fichier XML coté client (sur le disque dur du client). malheureusement ceci cause des problème de sécurité et d'après la FAQ : En JavaScript c'est impossible. Il est (a été) possible d'accéder aux fichiers sur le disque dur d'un utilisateur avec IE en utilisant des activeX, mais "normalement" ce n'est plus possible car ça représentait une faille de sécurité. Il y a un moyen avec le API XML for script, mais cette dernière utilise les cookies.
    y a-t-il une solution pour sauvegarder des données en XML coté client d'une façon permanante, car dans mon cas sur le faire coté serveur c'est impossible.
    merci.
    "Je n'ai pas de talents particuliers. Je suis juste passionnément curieux." Albert Einstein

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 669
    Points
    66 669
    Billets dans le blog
    1
    Par défaut
    non ce n'est pas possible...
    Enfin ce n'est plus dans l'esprit du dev web pour des raison évidentes de securité.
    Il faut passer par le serveur et proposer le download ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Points : 5 277
    Points
    5 277
    Par défaut
    Malheureusement non, par soucis de sécurité, il est impossible de stocker des données sur le disque du client sans la permission de ce dernier.

    C'est à dire que ce que tu peux faire, c'est générer le fichier XML coté serveur, l'envoyer vers le client qui doit valider le téléchargement. Ensuite, quand tu voudra y accéder, il faudra que l'utilisateur aille chercher son fichier sur le disque et qu'il le recharge dans l'application...

    Sinon, si tu cherches à stocker des fichier de façon moins volumineuse, essai plutôt de te tourner du coté de SQLite.
    "tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!"

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Bonjour,

    si tu veux absolument écrire ton fichier xml au niveau du client, tu peux utiliser une applet java pour gérer l'écriture du fichier (attention à la politique de sécurité de java, et il doit falloir également "signer" l'applet pour avoir les droits nécessaires).

    Ensuite, tu peux communiquer entre l'applet java et ton javascript.

    Pour plus d'infos sur l'interaction java <=> javascript :
    http://java.sun.com/javase/6/webnote...ect/index.html

    A+

  5. #5
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut
    Bonjour,
    merci pour vos réponses.
    Et si j'essaie de redirectionner la réponse du XMLHttpRequest vers un autre serveur web (normal : non embarqué), est c'est une bonne solution ? et comment lefaire en JS?
    "Je n'ai pas de talents particuliers. Je suis juste passionnément curieux." Albert Einstein

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Points : 209
    Points
    209
    Par défaut
    Ben, si tu t'adresses à un serveur, le traitement (en l'occurence, l'écriture du fichier XML) se fera sur ce serveur, et le fichier sera écrit sur le serveur, or ton objectif est que le fichier soit écrit sur le client, non ?

    Alors, à moins de faire le traitement sur le serveur puis de renvoyer le fichier mis à jour au client, qui s'apparentera à un téléchargement pour le client...
    Tout dépend si tu souhaites que ce soit "transparent" pour le client ou non...

    Si tu souhaites absolument que le fichier soit écrit sur le client, il te faut un "serveur" (ou apparenté, ex: l'applet java) pour faire le traitement.

    A+

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par med_alpa Voir le message
    Et si j'essaie de redirectionner la réponse du XMLHttpRequest vers un autre serveur web (normal : non embarqué), est c'est une bonne solution ? et comment lefaire en JS?
    Tu vas te retrouver bloqué par la Same Origin Policy.
    Tu devras donc à priori transiter par le serveur embarqué qui lui redirigera vers le serveur Web.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Expert confirmé Avatar de Barsy
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    1 484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 484
    Points : 5 277
    Points
    5 277
    Par défaut
    Comme le dit Bovino, je te déconseille de faire le transit par le client.

    La chaine de transit de l'information doit être de la forme suivante : Serveur 1 -> Client -> Serveur 1 -> Serveur 2 et non par Serveur 1 -> Client -> Serveur 2.

    En gros, ça revient à avoir un serveur frontal et un serveur de données.
    "tatatatatatatatataaa !! tata taaa !! tata taaa !! tatatata tataaa !! tata taaa !! tata taaa !!"

  9. #9
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par BaBeuH Voir le message
    Ben, si tu t'adresses à un serveur, le traitement (en l'occurence, l'écriture du fichier XML) se fera sur ce serveur, et le fichier sera écrit sur le serveur, or ton objectif est que le fichier soit écrit sur le client, non ?
    A+
    Mon objectif c'est de stocker d'une façon permanente des données collectées par un capteur sans-fil qui possède un Serveur web embarqué. et vu que ce capteur ne possède que quelques centaines de ko, ceci dit, je dois stocker les données sur un autre support... j'ai pensé au début au stockage coté client, mais d'après les réponses ceci est impossible ou très compliqué et ça reste lié à un navigateur particulier...

    Citation Envoyé par Bovino Voir le message
    Tu vas te retrouver bloqué par la Same Origin Policy.
    Tu devras donc à priori transiter par le serveur embarqué qui lui redirigera vers le serveur Web.
    ok je vais vérifier ça, j'espère que c'est possible avec le SWE, car c'est très spécifique.
    merci.
    "Je n'ai pas de talents particuliers. Je suis juste passionnément curieux." Albert Einstein

  10. #10
    Membre régulier Avatar de med_alpa
    Inscrit en
    Juillet 2005
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 134
    Points : 87
    Points
    87
    Par défaut
    Bonjour,

    Malheureusement, ce n'est pas possible de faire la redirection.
    mais on m'a conseillé d'utiliser les techniques de mashup ou Webstorage (html5) http://dev.w3.org/html5/webstorage/...
    Je vais vérifier.
    "Je n'ai pas de talents particuliers. Je suis juste passionnément curieux." Albert Einstein

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/10/2010, 11h50
  2. Réponses: 8
    Dernier message: 30/01/2009, 14h02
  3. Importer des données XML
    Par Oberown dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 26/07/2005, 12h59
  4. sauvegarde des données des tables
    Par tomm dans le forum Bases de données
    Réponses: 18
    Dernier message: 27/04/2004, 21h29
  5. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

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