问题标签 [web-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
18166 浏览

javascript - JavaScript 将 blob 保存到 localStorage

我正在尝试将blob通过 AJAX 检索到的数据(网站图标)保存到localStorage.

代码 :

代码从此处改编,稍作修改以使其与localStorage. localStorage 将所有数据保存为字符串,因此在保存之前需要以某种方式对 blob 进行字符串化。

JSON不将 blob 作为其支持的类型之一来处理,因此此代码失败也就不足为奇了。

有什么方法可以将 blob 放入 localStorage?

0 投票
3 回答
8912 浏览

javascript - 为什么在使用本地存储时抛出错误

嘿,我不知道为什么我的代码不起作用。我已经拔了头发,请看一下并告诉我这段代码有什么问题

注意:它在 chrome 和 mozilla 中运行良好,但在 IE10 和所有以下版本的 IE 中无法运行

请注意,我正在尝试两种不同的方式,所以请不要混淆这里是小提琴链接http://jsfiddle.net/rEmn6/

这是我的html代码

这是javascript代码

0 投票
3 回答
3089 浏览

java - Android 4.0 -> 4.3(包括)- webview 页面之间的 web 存储丢失

我正在开发一个 Android 项目,该项目依赖于WebView来浏览存储在设备上的多个 HTML 页面,并在需要将输入存储在数据库中时将输入提交给 webview。

每个页面包含与 jQuery 绑定到上一页/下一页的控件,每个页面包含不同类型的输入(复选框、文本字段等)。

最后一页包含一个提交按钮,该按钮使用 JSInterface 将结果保存在 SQLite DB 中。

另一个按钮(在自定义顶部导航栏中)提供相同的系统。

结果可以通过访问带有所有已保存输入的第一页来修改,jQuery 系统将填充相应的输入。

有关更多详细信息,我正在使用SDK 19并针对4.4.2进行编译,但我曾经使用SDK 15并针对我没有问题的4.2.2进行编译。

如果有人需要查看已完成的操作,请在简化的系统中查看此JSBin


问题

我使用SessionStorage来存储页面之间的输入,我曾经使用 cookie,但是当有超过 150 个键/值对时它们变得不可靠。

我的问题是,在某些设备上,页面之间的SessionStorage消失了。


测试协议

第一种情况 - 只停留在第一页

如果我只停留在第一页,填写输入然后发送结果,一切都很好。回来修改为我提供了一个完整的第一页。

第二种情况 - 在页面之间移动

填写第 1 页后,我移至第 2 页并填写新输入,然后在页面之间移动以查看输入是否在每个单独的页面上丢失。一切就绪,但如果我发送结果,则仅传输当前页面输入。


Android版本测试结果

  • 3.2 -作品

  • 4.1.2 -不起作用

  • 4.2.1 -不起作用

  • 4.3 -不起作用

  • 4.4.2 -作品


经过测试的解决方案

  • 覆盖WebViewClientshouldOverrideUrlLoading方法以返回 False -不起作用

  • 使用LocalStorage而不是 SessionStorage 并没有改变任何事情

见解

sessionStorage切换到localStorage没有帮助。

我发现了一些关于 Android 使用的 WebKit 版本的有用信息:

Android 3.2.1使用了一个相当旧的版本,但它可以工作 (v534.13)

4.04.3的Android版本共享相同的 WebKit 引擎 (v534.30)

Android 4.4使用了它的全新版本(v537.36),这解释了它的工作原理

没有一步可以修复,但它可以更准确地了解问题及其影响的设备。

解决方案

自 SDK 16 以来,强制实施新的安全设置以阻止 Javascript 代码访问来自任何来源的内容。

感谢 ksasq找到这个!

[编辑 18/02/2014]

经过一些测试,我将问题指向 TargetSdkVersion,BuildTarget 没有改变任何东西。

它设置为15,WebStorage 按预期工作。

如果设置为16或更高,则 WebStorage 出现问题。

0 投票
1 回答
2158 浏览

python - Python实现简单的Web数据存储

我正在尝试开发一个 pythonPyQt程序,允许用户输入有关个人详细信息的数据并在以后查看它们以进行处理。

该程序将由少于 5 人同时使用。所以,我正在考虑使用Sqlite3数据库,因为我相信它应该能够应对这么多的流量。

我想到的框架是,客户将在每台机器上拥有自己的 python pyqt 程序副本。每当他们执行任何需要读取/写入数据的操作时,它将通过互联网连接到服务器并从sqlite.db服务器上读取/写入。

基本上,服务器只是一个远程数据存储。

目前,我可以通过使用各种小部件(如、等)来创建所需GUI的数据输入。QlineEditQComboboxQTextEdit

但是我以前从未做过网络编程,因此我不知道如何实现一个服务器来存储我的软件的 sqlite 数据文件。所以我的问题是

(1) 如果我有一台具有 24/7 互联网连接的 PC,我该如何设置它以便它可以充当存储我的软件数据文件的服务器?

(2)我的程序可以/应该以什么方式通过互联网与该服务器通信。

即使您不能给我确切的答案,如果您能提供一些信息,我将不胜感激,以便我查找和研究它。

任何建设性的建议将不胜感激。

仅供参考:所有 PC 都将运行 windows XP SP3 32 位。

0 投票
1 回答
834 浏览

ios - PhoneGap iOS 7 和 localStorage

我目前正在构建一个 PhoneGap 3.3.0 iOS 应用程序,它使用 Ember.js/EmberData 和 LocalStorage 适配器来保存数据。在阅读了一些类似 StackOverflow 问题的文章后,我想知道 iOS 7 如何处理 LocalStorage 数据。它是永久存储还是仍存储在备份到 iTunes/iCloud 的缓存文件夹中?不幸的是,LocalStorage 上的 PhoneGap 文档仅参考了官方的 W3C 规范。

关于网络存储的处理,唯一说的是对以下标志的描述config.xml

BackupWebStorage(字符串,无、本地或默认云):设置为云以允许通过 iCloud 备份 Web 存储数据。设置为本地以仅允许通过 iTunes 同步进行本地备份。设置为 none 会阻止 Web 存储备份。

<preference name="BackupWebStorage" value="local"/>

Safari Docs也没有提到 LocalStorage 实现的内部结构以及它在应用程序更新周期中的处理方式。

我真的很想知道 iOS 7 是如何处理 LocalStorage 数据的,也许如果有一个我错过的文档,那么有人可以向我指出。

0 投票
3 回答
2962 浏览

php - 在 Cookie 中设置购物车会话

我正在创建一个购物车,我只是使用会话来更新购物车。但我想将其设置为 cookie 并检索它以供进一步使用......我的购物车会话是:

我想把这整件事设置成cookie。请帮忙。而且我想知道如果我在这里使用网络存储而不是cookie有什么好处......

谢谢你..

0 投票
2 回答
2026 浏览

html - HTML5 localStorage 在 Chrome 中不持久

此代码在 Firefox 和 Safari 中有效,但在 Chrome 版本 33.0.1750.149 中,重新启动后 localStorage 始终为空。(在 DevTools 中以及通过控制台访问)

我究竟做错了什么?

0 投票
1 回答
738 浏览

javascript - 为自动登录页面 iOS 存储用户名/密码或令牌的任何建议

我正在寻找如何记住自动登录 WIFI 登录页面的用户名/密码或令牌。Safari 是否不允许使用 Cookies/Web 存储?

任何人都可以建议我如何在网络客户端 iOS safari 中为出现的 WIFI 登录页面存储数据。

首先,我尝试使用 Cookie。它适用于 Safari,但自动登录 Safari 弹出窗口不起作用。HTML5 Web Storage 正是问题所在。

0 投票
1 回答
1194 浏览

javascript - 存储 JS 计数以继续使用 HTML5 网络存储

我正在尝试存储我的脚本,该脚本从 23,000 开始计数,以始终继续显示它是“实时的”并且始终使用 Web 存储进行计数。我已经尝试过实现这一点,到目前为止,我似乎无法让它发挥作用。什么是最好的解决方案来让它工作并且即使在刷新等时也能始终计数?我在下面包含了我的 JS Fiddle 和代码。任何帮助表示感谢!

编辑:澄清..我试图让一个“实时”计数器始终运行,无论您何时访问页面,刷新它,无论如何。不管我的脚本做什么,它总是会变得越来越大。但是,每次我刷新它都会从 23,000 开始。

HTML

JS

0 投票
2 回答
90 浏览

javascript - 有没有办法阻止 Web 存储和 IndexedDB 将架构作为来源的一部分?

Web 存储(本地和会话)和 IndexedDB 都是客户端存储机制。他们都非常正确地遵守同源政策。但是,如果我有一个由 http 和 https 页面组成的网站,这会阻止我在我的 https 页面中读取写在我的 http 页面上的数据,反之亦然。

那是正确的行为,这种行为的原因很明显,但是......

...嗯,有时可能会有点令人沮丧。如果我想存储非敏感数据以在 http 和 https 页面上可用,那么能够做到这一点真的很棒(无需求助于 cookie!)。

我不认为有任何方法可以做到这一点,但我想我会把它扔在那里,以防我忽略了一些东西。

非常感谢,

保罗