manejo - localstorage javascript ejemplos
¿Cómo usar el navegador en lugar de window.webkitStorageInfo HTML5 API del sistema de archivos? (3)
Así que aquí se encuentra una publicación similar html-5-filesystem-access-type-error . Sin embargo, no estoy muy satisfecho con la conclusión porque no creo que realmente haya respondido la pregunta: la solución dada es la solución de código obsoleto. ¿Alguien sabe cómo usar el navigator
lugar de la window
como la consola Chrome le indica que haga?
He estado usando lo siguiente y funciona, pero la consola chrome me sigue informando para que no lo haga porque está en desuso.
Código de trabajo en desuso
window.webkitStorageInfo.requestQuota(PERSISTENT, 1024*1024*280, function(grantedBytes) {
window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler);
}, function(e) {
console.log(''Error'', e);
});
Nota: onInitFs
y errorHandler
son funciones definidas en otro lugar, que funcionan.
Registro de la consola : el mensaje que recibo en la consola es el siguiente:
''window.webkitStorageInfo'' is deprecated. Please use ''navigator.webkitTemporaryStorage''
or ''navigator.webkitPersistentStorage'' instead.
Por lo tanto, la mejor práctica sería dejar de usar el método en desuso. Desafortunadamente, cuando reemplazo la window
con el navigator
se bloquea (ver más abajo). ¿Cómo se usa el navigator
lugar de la window
para acceder al sistema de archivos?
A continuación se muestran dos ejemplos con la API actual .
Utiliza navigator.webkitPersistentStorage.requestQuota
lugar de la obsoleta window.webkitStorageInfo.queryUsageAndQuota
:
Cuota de consulta
navigator.webkitTemporaryStorage.queryUsageAndQuota (
function(usedBytes, grantedBytes) {
console.log(''we are using '', usedBytes, '' of '', grantedBytes, ''bytes'');
},
function(e) { console.log(''Error'', e); }
);
Solicitar cupo
var requestedBytes = 1024*1024*280;
navigator.webkitPersistentStorage.requestQuota (
requestedBytes, function(grantedBytes) {
console.log(''we were granted '', grantedBytes, ''bytes'');
}, function(e) { console.log(''Error'', e); }
);
webkitTemporaryStorage
webkitPersistentStorage
almacenamiento temporal ( webkitTemporaryStorage
) o el almacenamiento persistente ( webkitPersistentStorage
) para consultar.
La implementación actual de Chrome rastrea esta versión de especificación específica, que describe un poco más las cosas: http://www.w3.org/TR/2012/WD-quota-api-20120703/
chromestore.js proporciona una API más fácil para estos datos.
Para responder a su pregunta original, su nuevo código se vería así:
Solicitar cuota e inicializar sistema de archivos.
var requestedBytes = 1024*1024*280;
navigator.webkitPersistentStorage.requestQuota (
requestedBytes, function(grantedBytes) {
window.webkitRequestFileSystem(PERSISTENT, grantedBytes, onInitFs, errorHandler);
}, function(e) { console.log(''Error'', e); }
);
El mensaje de error le indica que use navigator.webkitTemporaryStorage
o navigator.webkitPersistentStorage
e intente usar navigator.webkitStorageInfo
que undefined
está undefined
.
ACTUALIZACIÓN: PERSISTENT no debe pasarse a navigator.webkitTemporaryStorage
o navigator.webkitPersistentStorage
sino solo a window.webkitRequestFileSystem
. Entonces no hay más error. (ver: la API del sistema de archivos no funciona en Chrome v27 & v29 )
Recientemente, dediqué un tiempo a crear una capa de abstracción para la API del sistema de archivos con almacenamiento persistente llamado Chromestore.js. He corregido este error en la capa de abstracción utilizando la misma solución mencionada aquí. Pero con esta API, no hay necesidad de preocuparse por eso y está limpio.
https://github.com/summera/chromestore.js
Proporciona algunas funciones adicionales que también son bastante útiles. Definitivamente necesita ampliarse, lo que planeo hacer pronto. Cualquier sugerencia / retroalimentación es muy apreciada! Esto debería hacer que sea más fácil para aquellos que usan la API FileSystem. Especialmente para aquellos que intentan almacenar grandes cantidades de datos recuperados de servidores remotos.
Los ejemplos y la documentación están aquí: https://github.com/summera/chromestore.js/blob/master/chromestore-api.md
Creo que esto tiene el potencial de expandirse y hacer algunas cosas realmente buenas con los datos y la API del sistema de archivos.
¡Aclamaciones!