Mozilla ArchiveAPI, pour la lecture de fichiers archives
Dans votre navigateur

Le , par vermine, Responsable JavaScript & AJAX
Mozilla ArchiveAPI
pour la lecture de fichiers archives dans votre navigateur.

L'API ArchiveAPI permet de lire des archives (Zip, Tar, etc. ) directement dans votre navigateur. Elle vient compléter la liste des WebAPI, l'initiative de Mozilla pour rendre le Web plus performant.

Fondamentalement, il y a un objet ArchiveReader et lorsqu'il réussit à lire le contenu d'un fichier archive, nous pouvons alors extraire les données des fichiers ou avoir une prévisualisation du contenu de chaque fichier, etc.

Exemple de code :

Code javascript : Sélectionner tout
1
2
  
var archiveFile = new ArchiveReader(archiveFileReference), fileNames = archiveFile.getFilenames();

Il y a également la possibilité d'intercepter le succès ou l'échec de l'opération avec onsuccess et onerror.

Démo. Cependant, l'API n'est pour l'instant parfaitement opérationnelle que sur Firefox Aurora et Firefox Nightly.



Code source.

L'API est annoncée dans la nouvelle catégorie du site de Mozilla Hacks : Bleeding Edge. Cette catégorie couvre les technologies/caractéristiques/API qui n'ont pas encore été commencées dans Firefox ou un autre navigateur Web, en version officielle, mais qui, dans la plupart des cas, ont leur première implémentation dans Firefox Nightly ou Firefox Aurora. L'objectif étant d'avoir des commentaires et des retours utilisateurs.

Source : https://hacks.mozilla.org


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de redcurve redcurve - Membre actif http://www.developpez.com
le 12/10/2012 à 12:37
Je ne vois pas l'utilité de la chose.
Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 12/10/2012 à 14:56
Citation Envoyé par redcurve  Voir le message
Je ne vois pas l'utilité de la chose.

A l'ère du HTML5 et des applis presque tout local cela en a pourtant une bonne : la diminution de la taille en localStorage.
Avatar de thelvin thelvin - Modérateur http://www.developpez.com
le 13/10/2012 à 1:40
Citation Envoyé par transgohan  Voir le message
A l'ère du HTML5 et des applis presque tout local cela en a pourtant une bonne : la diminution de la taille en localStorage.

Euh, non, a priori si ça prend tellement de place les navigateurs peuvent très bien compresser sans qu'on leur demande, 'faut pas déconner.

Non, l'idée c'est que les applis web traitent de plus en plus souvent des fichiers. Image, vidéo, texte, XML... Traiter des zip n'est pas infaisable mais ça exige de programmer son propre zippeur/dézippeur en JavaScript, ce qui est monstrueusement chiant et pas super efficace.
Avec cette API on peut penser que Mozilla gèrera le zip en natif, et peut-être d'autres.

Ça me semble pas révolutionnaire, mais bon, c'est dans l'ère du HTML5 et du bureau dans une webapp.
Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 13/10/2012 à 18:05
On parle de la même chose, jamais je n'ai cité le cache...
Avatar de thelvin thelvin - Modérateur http://www.developpez.com
le 13/10/2012 à 21:33
Citation Envoyé par transgohan  Voir le message
On parle de la même chose, jamais je n'ai cité le cache...

T'as cité localStorage, quelle différence -_-° ?
Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 14/10/2012 à 9:39
Le localStorage est tout à fait différent du cache. Ta méprise vient surtout du fait de l’appellation qui est fortement synonyme de cache, mais la différence est que tout s'enregistre dans le cache sans que tu ais ton mot à dire alors que ce n'est pas le cas du localStorage. De plus des algos tournent pour vider les éléments inutiles du cache (bien que quand je vois la taille de mon cache des fois j'ai peine à croire que ça existe vraiment), donc ça serait bête de perdre des données applicatives stockées dedans.

Regardes dans ton navigateur. Pour firefox tu auras deux boutons bien différents : données web et données applications.
Avatar de thelvin thelvin - Modérateur http://www.developpez.com
le 14/10/2012 à 11:19
Bon sang, je sais bien que localStorage n'a rien à voir avec le cache, mais dans un cas comme dans l'autre, si ça devait être utile de le compresser, ce serait au navigateur d'en prendre la décision tout seul, sans que qui que ce soit le lui demande en JavaScript, c'est tout -_-°.
Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 15/10/2012 à 8:54
Citation Envoyé par thelvin  Voir le message
Bon sang, je sais bien que localStorage n'a rien à voir avec le cache, mais dans un cas comme dans l'autre, si ça devait être utile de le compresser, ce serait au navigateur d'en prendre la décision tout seul, sans que qui que ce soit le lui demande en JavaScript, c'est tout -_-°.

Tu extrapoles un peu trop selon moi.
Niveau serveur ce devrait aussi être de base que de gzipper toutes les réponses ?
D'autant que qui dit archiver en permanence dit perte de temps, donc il faut que cela soit valable et là c'est le développeur qui est mieux placé pour définir ce qui l'est ou non par rapport au navigateur.
Avatar de thelvin thelvin - Modérateur http://www.developpez.com
le 15/10/2012 à 9:42
Citation Envoyé par transgohan  Voir le message
Niveau serveur ce devrait aussi être de base que de gzipper toutes les réponses ?

Modulo tout ce qui se compresse mal, idéalement oui.
Or:
- ce ne sont pas les solutions qui manquent pour laisser le serveur faire un choix logique sur, si oui ou non il devrait compresser (en supposant que le navigateur annonce qu'il saurait le lire)
- ce n'est pas une "API d'archive." C'est "je compresse le unique fichier à envoyer, oui ou non."

Citation Envoyé par transgohan  Voir le message
D'autant que qui dit archiver en permanence dit perte de temps, donc il faut que cela soit valable et là c'est le développeur qui est mieux placé pour définir ce qui l'est ou non par rapport au navigateur.

En théorie je ne dis pas mais en pratique ça me semble assez léger. Mais bon passons.
Dans ce cas-là il n'y a besoin d'aucune API d'archive. Il y a besoin d'un booléen "le truc que je te donne là, tu le compresses, oui/non."
Avatar de transgohan transgohan - Expert confirmé http://www.developpez.com
le 15/10/2012 à 14:59
Je vois où tu veux en venir. Cela se tient mais c'est un point de vue comme un autre.
D'autres (comme moi) pensent qu'au lieu de fournir une voiture qui nous emmène automatiquement au boulot sans qu'on ai autre chose à faire que d'appuyer sur un bouton est moins bien que la voiture que l'on contrôle et dirige.
Sachant que la cible est des développeurs je pense que l'API est mieux choisie qu'un module que l'on ne peut influencer (ou peu).
Offres d'emploi IT
Développeur javascript (H/F)
CTS Consulting - Pays de la Loire - Nantes (44000)
Développeur javascript (H/F)
CTS Consulting - Pays de la Loire - Nantes (44000)
Développeur front end html /css / javascript / responsive design h/f
MISTERFLY - Ile de France - Paris (75008)

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique JavaScript : Xavier Lecomte -