L'enregistrement des données dans un fichier local à l'aide de JavaScript
Le set-up en question:
J'ai un stand alone, hors ligne, le mode kiosque instance de google Chrome en cours d'exécution sur une machine Windows. J'ai plein accès au système et tous les droits d'admin. Je peux commencer à Chrome avec tous les indicateurs définis ou indéfinis.
La tâche:
J'ai été invité à créer un fichier journal qui retrace l'activité de l'utilisateur dans le hors ligne application que je suis de codage. C'est une forme simple de la méthode analytique, qui s'ajoute chaque événement à la fin du fichier séparés par une virgule. Le fichier sera ensuite envoyée à un serveur une fois par jour via une tâche planifiée. (Aucun de c'est mon idée donc merci de ne pas troll moi)
Exclu:
N'importe quel serveur de code côté - j'ai fait du lobbying pour le Nœud, PHP, etc, mais comme cela va être distribué à un grand nombre de différentes installations de sorte que nous ne pouvons pas garantir il sera installé.
Flash/ActiveX/Java - idéalement voudrais éviter cela (même si ces seront installés par défaut)
Solutions possibles:
Fichier API - j'ai regardé ça mais autant que je sache s'ouvre des boîtes de dialogue pour enregistrer les données de chaque fichier et ce qui doit arriver dans l'arrière-plan.
Sécurité - j'ai lu dans d'autres DONC les Questions que cela peut être réalisé si les paramètres de sécurité sont réduites, mais personne n'explique lesquels. Est-il un simple indicateur qui permet-il?
Comment permettre à des système de fichiers en lecture accès en écriture à partir de Google chrome? - même question!
Résultat idéal: (quelque chose qui ressemble à PHP)
$file = 'log.txt';
$current = file_get_contents($file);
$current .= ",clicked:link";
file_put_contents($file, $current);
Idéal côté résultat: preuve que ce n'est pas possible et de les forcer PHP/Node/Java à utiliser 😉
En réponse à ceux qui suggèrent des locaux de stockage : je ne suis pas stocker unique de paires clé/valeur et qui ressemble beaucoup à la définition d'un cookie. De même il y a des limites de taille de fichier.
Pour ceux qui suggèrent web SQL comme SQLite dans chrome il y a des limites de taille de fichier si ce n'est pas une extension chrome. La seule façon que je vois que le travail est si je devais trouver l'emplacement du fichier dans le répertoire windows (C:\Users\%USERNAME%\AppData\Local\Google\Chrome\User Data\Default\bases de données) et télécharger les horaires de la tâche. Parfaitement faisable, mais ce n'est pas une réponse souhaitable.
Juste une mise à jour que je n'ai pas coché l'une des réponses correctes - autant que je sache, à ce stade, il n'existe aucun moyen d'accéder à un unsandboxed parc de l'ordinateur HD, donc aucune de ces réponses apporter une solution, en fait je dirais que c'est impossible. Le projet en question fini par aller en bas d'un noeud serveur de la route.
OriginalL'auteur sidonaldson | 2013-09-11
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le Chrome Apps Fichier API, vous aurez besoin d'accorder l'accès au fichier par l'intermédiaire d'une action de l'utilisateur une fois, mais après que vous pouvez obtenir l'accès à nouveau le fichier en utilisant
restoreEntry
Seulement pour les Applications à l'heure actuelle. Remarque, c'angulaire uniquement au module de encapsule le bac à sable de l'API, cette API dans ma réponse est d'obtenir un accès au système de fichiers raw.
Comme je n'ai pas préciser cela ne peut pas être une application que je suis plus qu'heureux d'accepter cette solution. Savez-vous ou un exemple d'étude de cas ou similaires?
OriginalL'auteur Kinlan
Vous pouvez utiliser le HTML5?
http://diveintohtml5.info/storage.html
OriginalL'auteur Ryan
Vous pouvez utiliser localStorage pour enregistrer des données hors ligne. Il est impossible d'accéder à d'autres fichiers à l'aide de Javascript car c'est une violation de la sandbox.
De http://en.wikipedia.org/wiki/JavaScript#Security:
OriginalL'auteur Melvin
Vous voudrez peut-être chercher dans Local De Stockage qui fait partie de la spec HTML5.
Ce ne sera pris en charge dans les navigateurs modernes bien.
Si vous avez besoin d'utiliser les navigateurs plus anciens, puis peut-être encore en mesure de réaliser ce que vous êtes après, à l'aide de dojox.de stockage
OriginalL'auteur Buchow_PHP
Utilisation de fonctionnalités de HTML5 comme de Stockage Web ou Web SQL base de données pour stocker vos journaux.
Besoin de lire les journaux à partir du client de stockage et de l'envoyer vers le serveur & supprimer le client de stockage.
Reportez-vous http://www.html5rocks.com/en/features/storage.
OriginalL'auteur Arunprasad Rajkumar