Si abre http://app.ft.com (el Financial Times aplicación web móvil), se le pedirá para añadir la aplicación a su «casa».

Después de hacer esto, al abrir la aplicación, se le pedirá de nuevo para permitir que el localstoreage tamaño de base de datos para ser el aumento de hasta 50MB.

  • Cómo puede hacerse esto? ¿Hay alguna API de JavaScript llamada? Los permisos o lo que sea?
  • Es este iPad (iOS?) específico, o funciona en otros navegadores Webkit?
  • no mezcle los locales de almacenamiento (almacenamiento clave-valor, 5MB límite duro) con el local de almacenamiento de base de datos (sqlite, 5MB, y puede crecer hasta 50 MB con el derecho trucos)
InformationsquelleAutor FrancescoR | 2011-06-08

5 Comentarios

  1. 37

    Se me ocurre para saber algo acerca de esto 😉

    No hay API para solicitar un aumento en el tamaño de almacenamiento de una base de datos existente. Hay una forma de forzar un aumento de: escritura de datos a la base de datos de tal tamaño que un aumento es necesario, pedir confirmación al usuario. Sin embargo, esto sería lento y no hay manera de saber el espacio asignado actualmente, por lo que no se recomienda.

    Rana negra tiene una parte de esta correcto: la única buena manera de hacer esto es a petición de una base de datos muy grande, cuando se abra, por ejemplo:

    openDatabase('databaseName', '1.0', 'My Database', 50*1024*1024, 

    … solicitar 50MB de espacio.

    Sin embargo, cuando el usuario visita el sitio, puede que no desee pedir a un 50MB límite a la vez, así que usted podría pensar que usted podría pedir a los 5MB en primer lugar, y después volver a abrirlo con 50MB? Por desgracia, esto no funciona – el segundo intento de abrir, con un aumento de la cantidad, tiene éxito en silencio, no para solicitar un incremento en el tamaño y en realidad no aumentar el tamaño disponible.

    Los PIES de la aplicación, por tanto, comienza con un 5MB de «vista previa» de la base de datos, de modo que el usuario no solicite en la primera carga. Se trata de no exceder este límite de 5MB, como cualquier espacio asignado tiene que ser compartida a través de todas las bases de datos.

    Si el usuario elige para permitir el almacenamiento de más contenido, la aplicación, a continuación, intenta abrir una base de datos con un nombre diferente con 40MB de espacio (para el que se solicita al usuario que aprobar el 50 MB). Esto permite a los 40MB en la base de datos, y 5MB en la vista previa original de la base de datos, por lo que tampoco debería fallar a la hora de insertar filas – como 50MB total es actualmente el límite en iOS.

    Todos los navegadores actualmente se encargan de la base de datos de límites de espacio de manera diferente, así que si estás planeando cruz-plataforma, prueba cuidadosamente. Escritorio de Safari maneja bastante bien, permitiendo mucho más grande; Chrome no permitir que cualquier aumento en todo; etc. Esperamos que todos los «HTML5» a las implementaciones diferentes de manera extraña 🙂

    • He hecho una pregunta acerca de la FT de la aplicación, la mente se lo comenta? Gracias
    • ¿sabe usted si el 50Mb límite es: dominio, dispositivo o navegador específico? Estoy necesarios para almacenar 600 mb de video en un lado de cliente de DB para la investigación de una solución de desplazarse a los diferentes dominios, a continuación, almacenar 50 mb de video en cada uno.
    • Es de dominio específico, y la gente ha usado hacks para shard datos de esa manera. En el navegador que usted puede obtener solicita por subdominio…? Sin embargo, como de iOS 7 en el caso de llegar a guardar la página en la pantalla de inicio antes de su uso, creo que los límites han sido eliminados (por WebSQL, de todos modos)… dar demo.agektmr.com/storage una prueba y háganos saber los resultados 🙂
    • gracias por la info, mis pruebas han demostrado que, de hecho, es de dominio específico y una vez que el usuario se preguntó una vez sobre el límite de memoria, nunca vuelve a preguntar. No he logrado conseguir más de 50Mb aún, parece bastante bloqueado, sin embargo estoy usando PouchDB como contraposición a la WEB de SQL directamente.
    • No es este de Cromo en el error y por lo tanto el comportamiento está obligada a cambiar eventualmente en el futuro?
  2. 7

    Esta base de datos es parte de Web de Base de datos SQL API, que no es parte de HTML5. Utilice el siguiente al establecer el tamaño de la base de datos

    function prepareDatabase(ready, error) {
        return openDatabase('documents', '1.0', 'Offline document storage', 50*1024*1024, function (db) {
            db.changeVersion('', '1.0', function (t) {
                t.executeSql('CREATE TABLE docids (id, name)');
            }, error);
        });
    }

    Introducción a los Web Bases de datos SQL en HTML5 Doctor tiene un muy rápido tutorial sobre cómo todo esto funciona.

    • No es SQL Web que ya está muerto? La página que enlace dice que «por Favor, ten en cuenta que como la de 18 de noviembre, el W3C está ya trabajando activamente en la Web de SQL de la Base de datos de la especificación»
    • esta respuesta fue puesto en 2011 :P, así que no esperes ser cierto
  3. 1

    Acabo de probar con mi aplicación sin conexión en el iPad 2( iOS 5.1.1) que no tenemos que hacer nada específico dentro de la aplicación. Por ejemplo, mi aplicación tiene alrededor de 18 MB de datos sin conexión. Cuando el navegador pulse URL, el navegador apareció el mensaje de solicitud de aumento en tamaño de 25 MB y yo lo acepté y todo está muy bien. Gracias

  4. 0

    Es específica del navegador. La mayoría han situado a 5 mb y algunos dan la opción de aumentar a través de un ajuste en algún lugar. No todos los navegadores ofrecen este aunque.

  5. -1

    ¿Eh — Dive into HTML5 dice que no hay navegador que esta de febrero de 2011, así que supongo que esto podría ser una versión de iOS 4.3 cosa? (iOS 4.3 se entregan en Marzo de 2011.)

    No puedo encontrar ninguna referencia a ella a partir de una rápida en Google. La propia Apple developer documentation podría hablar de él — no estoy seguro de si eso es para los que no se SDK de suscriptores, aunque.

Dejar respuesta

Please enter your comment!
Please enter your name here