草庐IT

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

coder 2023-08-01 原文

我要开发可以在移动设备(智能手机)上运行的网络应用。在应用中运算符(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 上增加本地存储而不受浏览器限制,用户必须简单地接受更多空间的请求。限制是设备的限制。

这是应用程序的二维码:

以及应用程序本身: 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 内存和 HTML5 LocalStorage 限制的更多相关文章

  1. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  2. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  3. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  4. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  5. ruby-on-rails - Ruby 中的内存模型 - 2

    ruby如何管理内存。例如:如果我们在执行过程中采用C程序,则以下是内存模型。类似于这个ruby如何处理内存。C:__________________|||stack|||------------------||||------------------|||||Heap|||||__________________|||data|__________________|text|__________________Ruby:? 最佳答案 Ruby中没有“内存”这样的东西。Class#allocate分配一个对象并返回该对象。这就是程序

  6. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  7. ruby-on-rails - capybara ::ElementNotFound:无法找到 xpath "/html" - 2

    我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'

  8. ruby - 如何使用 Ruby 将 CSV 文件读入 HTML 表格? - 2

    我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda

  9. 键删除后 ruby​​ 哈希内存泄漏 - 2

    你好,我无法成功如何在散列中删除key后释放内存。当我从哈希中删除键时,内存不会释放,也不会在手动调用GC.start后释放。当从Hash中删除键并且这些对象在某处泄漏时,这是预期的行为还是GC不释放内存?如何在Ruby中删除Hash中的键并在内存中取消分配它?例子:irb(main):001:0>`ps-orss=-p#{Process.pid}`.to_i=>4748irb(main):002:0>a={}=>{}irb(main):003:0>1000000.times{|i|a[i]="test#{i}"}=>1000000irb(main):004:0>`ps-orss=-p

  10. ruby - 如何使用 Nokogiri 解析纯 HTML 表格? - 2

    我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315

随机推荐