Arkivrapport: Implementasjon av arkiv i ubegrenset WebStorage med Swap til IndexedDB i HTML5
Dato:17. mars 2025 Forfatter:Ole Aamot
1. Introduksjon Denne rapporten beskriver den nylig implementerte funksjonaliteten iArkiv, som nå støtterubegrenset lagring ved hjelp av WebStorage og IndexedDB. For å omgå begrensningene ilocalStorage(~5MB), er det utviklet enautomatisert swap-mekanismesom flytter eldre eller større filer til IndexedDB nårlocalStorageer full. I tillegg ersletting og eksportfunksjonalitetlagt til, med støtte for følgende eksportformater:
* XML (arkiv.xml)– For arkivering i strukturerte databaser. * JSON– For maskinlesbar dataoverføring. * XHTML 1.0– For kompatibilitet med eldre webstandarder. * HTML5– For moderne nettlesere.
2. Teknisk Implementering 2.1 Lagring og Swap-mekanisme Løsningen fungerer som følger:
1. Lagring av filer ilocalStorageinntil grensen nås. 2. NårlocalStorageer full,overføres store eller eldre filertilIndexedDB. 3. Filer lagret i IndexedDB kan søkes opp og lastes tilbake tillocalStorageved behov. Teknologi brukt:
* localStorage:Rask tilgang for små filer. * IndexedDB:For ubegrenset lagring av store filer. * Filtre:For å velge hvilke filer som skal swaps til IndexedDB.
2.2 Søk og Gjenfinning Søkefunksjonen er forbedret for å hente dokumenter fra bådelocalStorageogIndexedDB. Algoritmen:
1. Søker ilocalStorageførstfor raskest tilgang. 2. Søker i IndexedDBdersom treff ikke finnes ilocalStorage. 3. Viser treffene dynamisk, inkludert innhold og filnavn.
2.3 Sletting av filer Brukeren kan nåslette filerdirekte fra arkivet.
* Hvis filen er ilocalStorage, fjernes den direkte. * Hvis filen er i IndexedDB, slettes den derfra. * Søkefunksjonen oppdateres dynamisketter sletting.
2.4 Eksportfunksjoner Brukeren kan eksportere hele arkivet til flere formater: 2.4.1 XML Eksport (arkiv.xml) Eksempel på XML-struktur:
<?xml version="1.0" encoding="UTF-8"?> <arkiv> <dokument> <navn>Eksempel.txt</navn> <innhold>Dette er et testdokument.</innhold> </dokument> </arkiv>
* Strukturen gjør det enkelt å integrere med andre arkivsystemer. 2.4.2 JSON Eksport Eksempel på JSON-struktur:
{ "arkiv": [ { "navn": "Eksempel.txt", "innhold": "Dette er et testdokument." } ] }
* JSON-formatet er velegnet for moderne systemer og API-integrasjon. 2.4.3 XHTML 1.0 Eksport Eksempel:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "<http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd>"> <html xmlns="<http://www.w3.org/1999/xhtml>"> <head> <title>Arkiv</title> </head> <body> <h1>Arkiv</h1> <div> <strong>Eksempel.txt</strong> <p>Dette er et testdokument.</p> </div> </body> </html>
* XHTML sikrer kompatibilitet med eldre systemer. 2.4.4 HTML5 Eksport Eksempel:
<!DOCTYPE html> <html lang="no"> <head> <meta charset="UTF-8"> <title>Arkiv</title> </head> <body> <h1>Arkiv</h1> <div> <strong>Eksempel.txt</strong> <p>Dette er et testdokument.</p> </div> </body> </html>
* HTML5-eksport sikrer optimal visning i moderne nettlesere. 3. Brukergrensesnitt (UI) UI er oppdatert med:
* Knapp for sletting av filer. * Knapp for eksport til XML, JSON, XHTML 1.0 og HTML5. * Dynamisk visning av lagrede filer.
4. Konklusjon
Denne oppgraderingen forbedrerlagringskapasitet,tilgjengelighetoggjenfinningi Archive Tool. Brukeren kan nålagre ubegrenset med dokumenter,søke effektivt,slette filer, ogeksportere arkivet i flere formater. Videre forbedringer kan inkludere:
* Automatisk komprimeringav filer. * Synkronisering med eksterne skyløsninger. * Avansert filtrering av søkeresultater. Denne løsningen sikrermoderne og skalerbar dokumenthåndtering, med ubegrenset lagringskapasitet gjennomWebStorage og IndexedDB. 🚀
Her erhttps://www.aamot.io/software/arkiv/arkiv.html, en komplett HTML5-applikasjon som implementerer:
✅Ubegrenset lagring med WebStorage og IndexedDB(automatisk swap) ✅Søkefunksjon på tvers avlocalStorageogIndexedDB ✅Sletting av filer fra bådelocalStorageogIndexedDB ✅Eksport til XML (arkiv.xml), JSON (arkiv.json), XHTML 1.0 (arkiv.xhtml) og HTML5 (arkiv.html5)
Kjernearbeidet med Noark5 kan ses i arkiv.html (vedlagt fil) og https://www.aamot.io/software/arkiv/arkiv.html
Mvh, Ole Aamot ole@aamot.software Aamot Innovation www.aamot.io