¿Hay alguna forma de retener/guardar datos (configuraciones) de manera segura que no sea IndexedDB y el guardado manual (solicitar al usuario un cuadro de diálogo para guardar)?
Básicamente, estoy escribiendo una aplicación fuera de línea y se empaquetará e implementará como un archivo html local (por ejemplo, file:///D:/test/index.html, sin servidores, simplemente ejecútelo haciendo doble clic en el archivo html). Tendrá algunas configuraciones y necesito poder guardar estas configuraciones localmente. La primera vez que se inicia la aplicación, recupero la configuración de un archivo app-settings.json y la guardo en IndexedDB.
Sin embargo, mi problema es que cuando el usuario borra los datos del navegador, la configuración también se eliminará.
No quiero mostrarle al usuario un cuadro de diálogo que le pida que guarde app-settings.json cada vez que se actualice la configuración. (También sería propenso a configuraciones duplicadas y fuera de lugar)
¿Alguna sugerencia sobre cómo hacer esto? ¿Cómo puedo conservar de forma segura la configuración de la aplicación sin ningún servidor? ¿Tal vez hay una base de datos fuera de línea de algún tipo que se puede usar en escenarios como este?
¡Apreciaría cualquier ayuda aquí! Estoy desesperadamente sin ideas :(
¡Gracias!
// Check if site's storage has been marked as persistent if (navigator.storage && navigator.storage.persist) { const isPersisted = await navigator.storage.persisted(); console.log(`Persisted storage granted: ${isPersisted}`); }habilite el almacenamiento persistente habilitando navigator.storage.persist, y le sugiero que comience a usar trabajadores de servicio para administrar aplicaciones fuera de línea.
https://web.dev/persistent-storage/ https://developers.google.com/web/fundamentals/primers/service-workers
Puede usar Usar la Api de archivos Javascript https://developer.mozilla.org/en-US/docs/Web/API/File_and_Directory_Entries_API
El cuadro de diálogo para guardar el archivo se mostrará una vez. Luego, la lectura del archivo no requerirá un cuadro de diálogo de archivo.
POR CIERTO
La web de VS Code también usa la API: https://vscode.dev/