智能手机上的 JavaScript 内存和 HTML5 LocalStorage 限制

标签 javascript html mobile local-storage smartphone

我要开发可以在移动设备(智能手机)上运行的网络应用。在应用中运算符(operator)会输入一些业务数据,运算符(operator)也会在密闭的空间内输入这些数据,在这种情况下可能没有网络信号。

因此,需要离线模式。在这种模式下,运算符(operator)可以输入数据,数据将存储在浏览器端,网络可用后,数据将发送到服务器并持久化在数据库中。

我发现了 2 种可能的解决方案:

  1. 将值存储在 JavaScript 内存中。将无法在浏览器崩溃或页面重新加载后幸存。
  2. 将值存储在 HTML5 LocalStorage 中。需要支持 HTML5 的浏览器并保证此存储将持久存在(关闭浏览器应用程序后不会刷新)。

因为我还没有为智能手机开发过 web 应用程序,而且我对它们的经验也很少,所以我有一个问题:

特定智能手机(Android、Windows Mobile、Windows Phone、iPhone)上的特定浏览器的 JavaScript 内存和 HTML5 LocalStorage 限制是什么?

我知道理论上 HTML5 LocalStorage 应该是 5MB,JavaScript 内存应该取决于设备资源,至少应该是 5MB,但是对于智能手机来说呢? F.g.我注意到在 Windows Phone 6.5 上,jStorage页面,对较旧的 IE 使用 userData,不会在此设备上持久保存数据(可能在每次页面刷新后刷新,在资源有限的情况下)。

更新answer to the question of max size of local storage values测试本地存储限制的简单应用程序有很好的链接,根据我所做的测试,可以在 Opera Mobile 11 上增加本地存储而不受浏览器限制,用户必须简单地接受更多空间的请求。限制是设备的限制。

这是应用程序的二维码:

QR code

以及应用程序本身: http://arty.name/localstorage.html

最佳答案

根据我的经验,对于上面提到的平台,您可以可靠地押注至少 5MB。将您的数据保持在该水平以下,您应该非常安全。

阅读这篇文章。 http://diveintohtml5.info/storage.html它有一些不错的信息,但并不完全准确,尤其是说你不能达到极限的部分。
我知道一个事实,即在 iPhone 上,一旦达到限制,手机就会询问用户是否要允许更多空间。 (有点准确,但不完全)

在 Android 平台上,堆内存限制设置为 12MB。不确定其他平台。因为您将在某种网络容器(Webkit 或其他)中运行,所以我不会太担心它。容器本身非常擅长管理内存和实现文件缓存以最大限度地减少占用空间。

我建议您将内存优化等放在最后。谁知道,您甚至可能不需要它。不要过早优化。

附言:
查看 Phonegap:http://phonegap.com/

关于智能手机上的 JavaScript 内存和 HTML5 LocalStorage 限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7267354/

相关文章:

javascript - 获取图像项目数并更新 owl carousel 2 中的中心选项

javascript - 在其外部单击时隐藏 Bootstrap 侧导航栏

html - 手机版CSS

Javascript大数组挂起

css - 使用 :focus has issue with non-menu links failing 的纯 CSS 移动切换菜单

具有高分辨率的 jquery 移动平板电脑

javascript - 使用 google-map api 仅使用确切位置填充文本框

javascript - 单击提要上的共享时,facebook api 显示奇怪的 "Platform Story Share"

.net - 避免继承 css

java - 如何为手机创建一个扩展名为 .JAR 的应用程序?