javascript html5 mobile local-storage smartphone

Memoria de JavaScript y limitaciones de HTML5 LocalStorage en teléfonos inteligentes



mobile local-storage (3)

En mi experiencia, puedes apostar de manera confiable a un mínimo de 5MB para las plataformas que mencionas anteriormente. Mantenga sus datos por debajo de ese nivel y debería estar bastante seguro.

Lee este artículo. http://diveintohtml5.info/storage.html tiene algunas bonitas pepitas de información, pero no todo es preciso, especialmente la parte que dice que no puedes subir el límite.
Sé a ciencia cierta que en el iPhone, una vez que alcance el límite, el teléfono le preguntará al usuario si desea permitir más espacio. (Tipo de precisión, pero no del todo)

En las plataformas Android, el límite de memoria del montón se establece en 12 MB. No estoy seguro de las otras plataformas. Ya que estarás ejecutando en algún tipo de contenedor web (Webkit u otro) no me preocuparía demasiado por eso. Los contenedores en sí mismos son bastante buenos para administrar la memoria e implementar cachés de archivos para minimizar su huella.

Te recomiendo que dejes las optimizaciones de memoria y demás para el final. Quién sabe, puede que ni siquiera lo necesites. No optimices prematuramente.

PD:
Mira Phonegap: http://phonegap.com/

Voy a desarrollar una aplicación web que debería funcionar en dispositivos móviles (teléfonos inteligentes). En la aplicación, el operador ingresará algunos datos de negocios, y el operador escribirá estos datos también en espacios cerrados, donde la señal de la red puede no estar disponible.

Por lo tanto, hay una necesidad de modo fuera de línea . En tal modo, el operador puede ingresar datos, que se almacenarán en el lado del navegador, y una vez que la red esté disponible, los datos se enviarán al servidor y se conservarán en la base de datos.

He encontrado 2 posibles soluciones:

  1. Almacena los valores en la memoria de JavaScript. No sobrevivirá al bloqueo del navegador ni a la recarga de la página.
  2. Almacena los valores en HTML5 LocalStorage . Requiere un navegador compatible con HTML5 y garantiza que este almacenamiento sea persistente (no se enjuague después de cerrar la aplicación del navegador).

Como todavía no he desarrollado la aplicación web para teléfonos inteligentes y tengo poca experiencia con ellos, tengo la pregunta:

¿Cuáles son las limitaciones de la memoria de JavaScript y HTML5 LocalStorage para navegadores en particular en teléfonos inteligentes en particular (Android, Windows Mobile, Windows Phone, iPhone)?

Sé que, en teoría, HTML5 LocalStorage debería ser de 5 MB, y la memoria de JavaScript debería depender de los recursos del dispositivo, que deberían ser de al menos 5 MB, pero, ¿cómo están los smartphones? Fg He notado en Windows Phone 6.5, que la página jStorage , que usa userData para IE más antiguo, no es información persistente en este dispositivo (tal vez se vació después de cada actualización de la página, durante recursos limitados).

actualización En la respuesta a la pregunta sobre el tamaño máximo de los valores de almacenamiento local, hay un gran enlace a la aplicación simple que prueba las limitaciones del almacenamiento local y, según la prueba que he realizado, el almacenamiento local puede aumentarse en Opera Mobile 11 sin la limitación del navegador. , el usuario simplemente debe aceptar la solicitud de más espacio. Los límites están ahí los límites del dispositivo.

Aquí está el código QR a la aplicación:

Y la aplicación en sí: http://arty.name/localstorage.html


En mi humilde HTC Wildfire S con Android 2.3.5, su página se detuvo en 2,600,000. Estoy impresionado de que haya llegado tan alto.

En el escritorio de Firefox 16.0.1, se detuvo en 5,200,000, lo que es consistente con lo que se define en la configuración de la cuota.


acaba de probar su enlace: http://arty.name/localstorage.html

  • Chrome 16.0.912
  • iPad2 IOS 5.0.1
  • iphone 3gs

Todos van hasta los 2.600.000 caracteres. Dado que UTF-8 tiene 4 bytes, multiplíquelo por cuatro y obtendrá el total de bytes.

10400000 bytes = 9,918 MegaBytes