2011-04-12 1 views
2

J'ai besoin d'un système de stockage de base de données pour Javascript où l'état peut être maintenu sur le disque local.Lecture/Ecriture de fichiers en Javascript - IE6

Voici le bâtons dans les roues: -

  • Il n'a besoin que de soutenir Internet Explorer, mais la version minimale doit être IE6
  • Les fichiers doivent être écrits afin qu'ils puissent être lus plus tard (lors de la fermeture et de la réouverture du navigateur)
  • Il ne peut pas y avoir de serveur Web (à moins qu'il soit extrêmement facile à distribuer et ne nécessite pas d'installation) puisque les pages HTML seront distribuées sur USB.

Quelqu'un sait-il des solutions qui pourraient aider ici?

+2

Avez-vous déjà regardé TiddlyWiki? – Pointy

+0

http://ie6countdown.com/ – epascarello

+0

Merci Pointy, ça a l'air très intéressant.Epascarello, malheureusement, il coûte une fortune pour les grandes entités commerciales avec un logiciel qui repose sur IE6 pour faire ce pas en avant, que MS empile sur la pression, mais c'est une bonne nouvelle :) –

Répondre

2

Amusez-vous avec userData. Apparemment, il fait ce que vous voulez dans IE6/7

Puis localStorage pour IE8/9

Ou vous pouvez utiliser le plus lourd store.js qui fait la détection de caractéristiques pour vous et fonctionne apparemment dans IE6 +.

Il devrait fonctionner dans IE9 mais pas de garantie. Je recommanderais store.js car c'est plus facile pour l'entretien et fonctionne juste hors de la boîte. Vous pouvez également prendre en charge d'autres navigateurs de cette façon.

+0

+ 1 réponse parfaite – daniellmb

+0

Notez que ma stipulation de "Les fichiers doivent être écrits pour qu'ils puissent être relus plus tard (à la fermeture et à la réouverture du navigateur)". Est-ce que userData/localStorage persiste après l'ouverture et la fermeture du beowser? J'avais l'impression que ce n'était pas le cas mais peut-être que je me trompe. –

+0

@JulianYoung stockage local est persistant. SessionStorage ne l'est pas. userData est bonne chance;) – Raynos

1

Je ne sais pas si c'est supporté dans IE6, mais JScript semble avoir un certain niveau de support pour cela à travers FileSystemObject.

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var a = fso.CreateTextFile("c:\\testfile.txt", true); 
a.WriteLine("This is a test."); 
a.Close(); 

Selon Write binary data with FileSystemObject write(), ADODB.Stream semble être une alternative.

+0

FileSystemObject fonctionnera à partir de IE6, mais il nécessite des autorisations élevées généralement pas accordées au contenu HTML sur un lecteur USB. J'ai essayé cette approche et il s'est avéré être un problème de support parce qu'aucun de mes utilisateurs n'a pu l'obtenir pour "juste travailler" ... ils ont tous dû singe avec leurs arrangements de sécurité de système. –

+0

@Mark Ever: Pour éviter ces problèmes, utilisez .HTA (fichiers/applications) au lieu de .HTML. –

+0

oui - je suis désolé - éditera. –

1

essayer de lire ce post: Read/write to file using jQuery

Hope this helps.

+0

Merci pour ce lien, même si ce n'est pas très utile pour mes exigences plutôt contraint, il y avait un lien intéressant à http://jquery.tiddlywiki.org/twFile.html Je vais regarder. –

1

Pour le travail IE strictement local, utilisez HTA Applications. Ensuite, vous pouvez accéder aux ressources locales (fichiers texte, bases de données ADO) sans problèmes de sécurité.

+0

Bon appel, je vais enquêter plus loin aussi. Merci. –

1

Je suggère que vous n'essayez pas de lire/écrire en utilisant JavaScript, mais plutôt à la tête de l'intégration d'un petit serveur web sur le lecteur USB. Je l'ai fait pour une application une fois et ça a bien fonctionné. J'ai utilisé le serveur web Cassini.

J'ai créé deux projets en studio visuel. D'abord, j'ai créé un site Web ASP.Net pour lire/écrire à partir d'une base de données SQLite. Ce site a affiché tout mon contenu et a été construit comme n'importe quel autre site ASP.Net. Deuxièmement, j'ai créé une application Windows Forms qui hébergeait le serveur Web Cassini et présentait à l'utilisateur un formulaire contenant un seul contrôle de navigateur Web. Cela a rendu l'expérience utilisateur très simple ... ils ont simplement cliqué sur MYAPP.EXE à partir de la racine du lecteur USB et le formulaire s'ouvre, démarre le serveur Web et navigue le contrôle du navigateur vers la page d'accueil du site Web.

+0

Très intéressant, se penchera sur ce point plus loin, merci Mark. –