iPhone Safari 上的 HTML5 - localStorage 存储的数据并不总是持久。为什么?

2024-01-09

我使用 HTML5 的 localStorage 编写了一个简单的 iPhone Web 应用程序。
在 2G 设备上的测试表明,尽管会记住打开的 Safari 窗口,但在 Safari 进程被终止后,使用 localStorage 存储的数据不会保留。

如果我在不同的 Safari 窗口上的不同站点上,然后我将窗口更改为显示主题中的 Web 应用程序的位置,则数据也会丢失。当 Safari 加载页面时,它会自动刷新页面。然后数据就会丢失。 这是一个简单的测试代码:

<html>
<head>
    <meta name="viewport" content="height=device-height, width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
</head>
<body>
<script>
    alert("1:" + localStorage.getItem("test"));
    localStorage.setItem("test", "123");
    alert("2:" + localStorage.getItem("test"));
</script>
</body>

据我了解,数据应该持续存在!
谁能解释一下这种行为?我应该怎样做才能让工作有毅力?

Thanks!
Tom.


根据苹果公司的说法(https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3 https://developer.apple.com/library/archive/documentation/iPhone/Conceptual/SafariJSDatabaseGuide/Name-ValueStorage/Name-ValueStorage.html#//apple_ref/doc/uid/TP40007256-CH6-SW3),Safari 4.0 中添加了 localStorage 支持。

根据维基百科(https://en.wikipedia.org/wiki/Safari_version_history https://en.wikipedia.org/wiki/Safari_version_history),iPhone OS 3.0 中添加了 Safari 4.0。

2G iPhone 未预装 OS 3.0 或更高版本。您的 iPhone 操作系统版本很可能太旧。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iPhone Safari 上的 HTML5 - localStorage 存储的数据并不总是持久。为什么? 的相关文章

  • angularjs在指令中查找div的属性

    Angular 新手 StackOverflow 新手 几天来一直试图解决这个问题 这是我的问题 我想将一组盒子居中 有没有办法访问 div 的属性 带有 id 或类名 并在指令中操作它们 在我的 html 中 我使用 ng repeat
  • CAShapeLayer 上的渐变颜色效果

    我正在尝试在 CAShapeLayer 上应用渐变颜色 为此我编写代码 void addCircle Drawing code UIBezierPath aPath UIBezierPath bezierPathWithArcCenter
  • 在 JavaScript 中使用 document.getElementById

    有人可以解释一下是什么document getElementById demo 下面的例子中的线是什么 我知道 getElementById 获取演示的 id 但 id 是 p p 到底是什么 p p 在这段代码中做什么 document
  • jQuery:计算数百个元素的点击次数

    这是我在SO 的第一个问题 基本上 我的页面上有大量元素 我想计算并显示用户单击每个元素的次数 但为此我需要为每个元素定义变量 难道就没有更简单的方法吗 对于一个元素 var counter 0 container on click fun
  • 使用 JavaScript 将数据插入数据库时​​,在控制台中创建错误“超出最大调用堆栈大小”

    我进行了大量搜索来修复过去几天遇到的 JavaScript 错误 我看到很多问题都得到了解答堆栈溢出 但不幸的是 没有人符合我的错误 我想要的是发送一个简单的记录到database using JavaScript and PHP 但我得到
  • iOS 应用程序测试。应用程序安装失败。找不到代码签名[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我尝试在多个 iOS 设备上安装我的应用程序 但这件事不让我这么做 我想知道 问题是什么以及我应该如何解决它 就我而言
  • 输入文本中固定下划线

    我试图修复所有输入文本类型中的下划线 但没有成功 Example My code input width 100 background color fcfcfc border 0 padding 10px div class col lg
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • PhoneGap 上的 SQLite 数据库

    我想使用 PhoneGap 为 iPhone 实现 SQLite 数据库 我了解 iPhone 本机应用程序中 SQLite 数据库的一些基础知识 但是如何在 PhoneGap 中实现 SQLite 数据库呢 我们最终使用了PhoneGap
  • 如何使用 MonoTouch c# 以编程方式获取联系人?

    如何获取 iPhone 中的联系人 我需要从 iPhone 联系人中获取所有属性 如何使用MonoTouch以编程方式实现 ABAddressBook iPhoneAddressBook new ABAddressBook ABPerson
  • 尽早检测有问题的 XIB 视图

    我的笔尖名称有一个拼写错误 当我推向导航控制器时 它在代码中被破坏了 弄清楚它并没有花太长时间 但我认为最好尽早断言格式良好 以便更容易弄清楚 问题是它不是零 它只是无法从笔尖正确地形成自己 在 initWithNib 之后是否有更好的断言
  • 在 TCPDF 中设置背景颜色

    我已经手动设置了第一页的背景颜色 如下所示 pdf gt AddPage pdf gt SetFillColor 52 21 0 76 pdf gt Rect 0 0 pdf gt getPageWidth pdf gt getPageHe
  • HTML5 服务器端事件:EventSource 与包装的 WebSocket

    HTML5 服务器发送事件 SSE API 是否只是 HTML5 WebSocket 之上的受限制的 基于事件的 API 在我看来 一个EventSource只是一个WebSocket that Cannot send data 使用tex
  • 为什么我在 Safari 开发者工具中看不到预检(方法:选项)xhr 请求?

    由于我不明白的原因 Safari 无法 间歇性但持续地 连接到我们 QA 基础设施上的 Rails 应用程序 静态前端和 API 后端 我将就此写另一个问题 目前 让我感到困惑的一件事是 Safari 一般来说 似乎从未显示其他浏览器 Ch
  • 带 CSS 网格的等宽侧边栏列

    是否可以让左右列具有相同的宽度 而中间列占据剩余空间 我不想设置像这样的百分比grid template columns 20 60 20 因为并不总是确定这些列的内容是什么 Flexbox 和表格似乎没有解决这个问题的方法 所以我再次尝试
  • 空 URL 哈希导致页面在 js 事件上跳转

    我有一个带有下一个和上一个按钮的照片库 如果我的某个 javascript 方法由于某种原因被破坏 那么当单击其中一个按钮时 它会向 url 添加一个哈希值 即 www google com 我知道可以给散列一个 div id 来跳转到页面
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 如何在粘贴时获取文本区域输入字段的新值?

    我发现当我尝试从文本区域字段读取值时onpaste调用函数时 我得到字段的旧值 粘贴操作之前的值 而不是新值 粘贴操作之后的值 以下是此行为的演示 http jsfiddle net qsDnr http jsfiddle net qsDn
  • 有没有办法防止输入 type=“number” 获得多个点值?

    我只想得到十进制值 如 1 5 0 56 等 但它允许多个点 有什么办法可以预防吗 您可以使用pattern属性
  • 使用 jQuery 修改 HTML 表格的结构

    我有一个元素列表 X在以下示例中 显示在 HTML 表格的行或列中 从 HTML 代码的角度来看 我有 水平显示 table tr td A td td B td td C td tr table 或 垂直显示 table tr td A

随机推荐

  • 在 SharedPreferences 中存储数组列表对象

    该方法将新对象添加到ArrayList get text from textview time date getText toString entry d entry getText toString dayName day getText
  • Angular Material 2 中的 md-table

    我正在与角材料表 https material angular io components table overview在Html代码中 有
  • 将项目升级到 MVC 5

    我一直在寻找一种解决方案来升级当前的 MVC 4 应用程序 我必须使用新的 MVC 5 二进制文件 我在任何地方都找不到解决方案 有人有主意吗 Visual Studio 2013 只需允许 Nuget 包管理器运行更新即可自动升级项目 S
  • 调用方法一次以在 Django Rest Framework 序列化器中设置多个字段

    如何使用 Django Rest Framework 序列化程序调用同一方法一次来设置多个字段 这就是我现在所做的 但这显然调用了该方法两次 如何限制它只能被调用一次 class MyModel models Model def GetTw
  • 我应该实现 onRetainNonConfigurationInstance 吗?

    我刚刚读到有关维护 Android 应用程序状态的内容 并偶然发现了 onRetainNonConfigurationInstance 但在阅读时文档 http developer android com reference android
  • Flutter:如何将 URI 转换为文件?

    我想将路径 content media external images media 138501 转换为文件并在图像中设置 Code File imageFile File content media external images med
  • Lucene索引中“-”字符的问题

    我在使用 Lucene 索引时遇到问题 该索引已索引包含 字符的单词 它适用于某些包含 的单词 但不适用于所有单词 我找不到它不起作用的原因 我正在搜索的字段经过分析并包含带有和不带有 字符的单词版本 我正在使用分析器 org apache
  • Graphviz dot - HTML 表格中的斜体文本不是斜体

    我在用着dot版本2 26 3 下列 dot内容 digraph html results shape none margin 0 label lt table border 0 cellspacing 0 cellpadding 4 tr
  • 从 CGPoints 数组中获取最大值和最小值

    我们有一组 CGPoints let points 1234 0 1053 0 1241 0 1111 0 1152 0 1043 0 我想做的是获取数组中 x 值最高的 CGPoint 和 y 值最高的 CGPoint 我将使用这些点来创
  • 您不是该客户端的沙箱用户。错误代码igniter-Instagram api

    In my codeigniter我正在尝试使用的项目Instagram API用于登录 This https github com ianckc CodeIgniter Instagram Library是我正在使用的库 但是当进入登录页
  • Android Studio 中 make 和 build 的区别

    Android Studio Build 菜单的选项包括 Make Project Rebuild Project 我应该什么时候使用它们 大多数时候你应该使用制作项目 有时 在添加库并对项目进行重大更改后 您应该使用重建项目 如果你看一下
  • 当我将项目从一个列表框传输到另一个列表框时,如何防止页面回发

    我的应用程序中有两个列表框 单击按钮后我将项目从一个列表框推送到另一个列表框 代码工作正常 但它会导致回发 当我将项目从一个列表框移动到另一个时 整个页面正在再次加载 如何我可以阻止这一切 这将是我的 aspx 页面上的代码 div cla
  • UISearchBar 文本颜色

    浏览文档 我找不到任何可以更改 UISearchBar 颜色的内容 有人知道如何更改吗 没有任何 textColor 属性 Thx 适用于 iOS 7 及更高版本 UITextField appearanceWhenContainedIn
  • SIMD 将 12 位字段解包为 16 位

    我需要从每个 24 位输入中解压缩两个 16 位值 3 字节 gt 4 字节 我已经以幼稚的方式做到了 但我对表现不满意 例如 InBuffer 是 m128i value1 uint16 t InBuffer 0 11 bit range
  • 如何让 ListView 部分标题固定下来

    我的按钮显示在屏幕顶部 使用反应本机可滚动选项卡视图 在按钮下面 我有ListView上面有节标题 当我滚动时 有没有办法让标题粘在选项卡视图的底部边缘 我很难得到ListView的节标题粘在 Facebook TabBar 的底部 默认情
  • CSS 旋转 IE7 和 8

    我还要问另一个问题 所以 CSS Rotate 在 ie9 中可以工作 但在以前的版本中让旋转工作将是我的死 filter progid DXImageTransform Microsoft BasicImage rotation 1 这行
  • 检测视频文件何时真正写入?

    cwac camera 库具有在保存照片之前调用的事件挂钩 Override public void saveImage PictureTransaction xact byte image 我是否只是忽略了这一点 或者是否没有接收器告诉我
  • 为什么 GetWindowThreadProcessId 有时返回 0?

    我使用远程调用在目标地址空间中注入 NET SpyLib 我需要向该窗口的线程发送一条消息 该线程通过以下方式创建了该远程进程GetWindowThreadProcessId 我正在 Windows 7 上工作 不幸的是它大多数时候返回 0
  • Vue-cli 版本 3 BETA webpack 配置

    我正在尝试学习和测试即将推出的 vuejs vue cli beta 3 0 版本 这将是朝着最简单的 webpack 配置迈出的一大步 与此同时 例子很少 作为测试 我尝试从 vue cli v2 webpack dev conf js
  • iPhone Safari 上的 HTML5 - localStorage 存储的数据并不总是持久。为什么?

    我使用 HTML5 的 localStorage 编写了一个简单的 iPhone Web 应用程序 在 2G 设备上的测试表明 尽管会记住打开的 Safari 窗口 但在 Safari 进程被终止后 使用 localStorage 存储的数