标签: web-storage

使用Javascript在localStorage中存储大型整数数组的最有效方法

*"高效"这里基本上意味着更小的尺寸(减少IO等待时间),以及快速的检索/反序列化时间.存储时间并不重要.

我必须在浏览器的localStorage中存储几十个整数数组,每个数组都有一个范围为0-50的1800个值 - 也就是说,作为一个字符串.

显然,最简单的方法是,只要JSON.stringify它,它会增加许多不必要的信息,考虑到数据的范围是众所周知的.其中一个数组的平均大小为~5500字节.

以下是我尝试过的其他一些方法(结果大小,以及最后反序列化1000次的时间)

这是我的结果:

                  size     Chrome 18   Firefox 11
-------------------------------------------------
JSON.stringify    5286          60ms         99ms
zero-padded       3600         354ms        703ms
base 50           1800         315ms        400ms
charCodes         1800          21ms        178ms
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有一个更好的方法,我还没有考虑过?

更新
MДΓΓБДLL建议对数据使用压缩.将此LZW实现与基础50和charCode数据相结合.我还测试了aroth的代码(将4个整数打包成3个字节).我得到了这些结果:

                  size     Chrome 18   Firefox 11
-------------------------------------------------
LZW base 50       1103         494ms        999ms
LZW charCodes     1103         194ms …
Run Code Online (Sandbox Code Playgroud)

javascript html5 local-storage web-storage

13
推荐指数
1
解决办法
3450
查看次数

AppCache = Application Cache = Web Storage的LocalStorage吗?

我对HTML5离线存储的(各种)术语感到有些困惑.

我认为AppCacheWeb Storage的另一个名称,您可以通过Cache Manifest指定将要脱机存储的内容.有两种类型:LocalStorage(在当前会话之后持续存在)和会话存储(在当前会话之后不会持续存在).

以上就是我从W3C和维基百科中读到的内容,但Head First HTML5编程(Freeman&Robinson)深入描述了LocalStorage,然后在附录中有了Web Storage(有关Cache Manifest的信息)("我们没有覆盖的内容" ).

我理解正确吗?

html5 web-storage html5-appcache

11
推荐指数
2
解决办法
7655
查看次数

从服务器端访问Web存储 - 可能吗?

我已经在Web存储(会话和/或本地)中存储了一些字符串,并且想知道是否可以在页面加载或服务器端的init上检查这样存储的字符串(在我的情况下是asp.net c#). ..因此,例如,我将知道不从数据库重新获取数据并使用最后一页加载时已驻留在浏览器中的数据.

c# asp.net local-storage web-storage sessionstorage

10
推荐指数
1
解决办法
2万
查看次数

HTML5网络存储:不同的网站可以在用户的​​计算机上覆盖彼此的数据吗?

关于HTML5存储的概念,我有几个问题.我对w3c规范,书籍和教程进行了相同的讨论,但我仍然对某些概念有点不清楚:

假设我访问网站A.一些JavaScript在我的浏览器中运行,设置一个键值对,比方说('username','deepak').然后我访问网站B,它还在localstorage中添加了一个键值对('username','mahalingam').

  • 它们如何区分?
  • 网站B是否会覆盖我的本地存储中网站A设置的值?
  • 我们怎样才能确保网站不会删除我所有的本地存储?

html5 local-storage web-storage

10
推荐指数
1
解决办法
3735
查看次数

在客户端js中使用缓存数据的最佳方法是什么?

我的应用程序使用具有有限数量请求的API从另一台服务器接收数据.数据变化很少,但即使刷新页面后也可能需要.

  1. 使用cookie或HTML5 WebStorage,这个问题的最佳解决方案是什么?
  2. 并可能有其他方法来解决这个任务?

javascript cookies html5 web-storage

10
推荐指数
2
解决办法
2万
查看次数

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存储数据.设置为local以仅允许通过iTunes同步进行本地备份.设置为none可阻止Web存储备份.

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

Safari浏览器的文档也没有提到的localStorage实施的内部以及它是如何在一个应用程序的更新周期治疗.

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

local-storage web-storage ios cordova ios7

10
推荐指数
1
解决办法
763
查看次数

隐私浏览模式下的Web存储(sessionStorage和localStorage)(隐身)

背景

现代浏览器中的HTML5 Web存储功能可通过以下Javascript命令访问:

sessionStorage.setItem("username", "John");
localStorage.setItem("username", "John")
Run Code Online (Sandbox Code Playgroud)

我可以使用的网站表明浏览器支持率接近90%.但是,在"已知问题"选项卡中,我可以使用说:

在隐私浏览模式下,Safari,iOS Safari和Android浏览器不支持设置localStorage.

我的问题

在隐私浏览模式下,Safari,iOS Safari和Android浏览器是否仍支持sessionStorage?

javascript html5 session-storage local-storage web-storage

10
推荐指数
1
解决办法
1万
查看次数

IndexedDB的包装函数

我需要为iPad /平板电脑设备构建一个离线HTML5网络应用程序,用户可以从服务器下载数据集(数据表)并将其存储在设备上.然后,用户可以断开与服务器的连接,并在设备上本地查看/编辑数据.这适用于在没有蜂窝覆盖且需要收集/更新数据的偏远地区工作的人.当他们回到办公室时,他们可以将数据同步/上传回服务器.它需要成为HTML5的原因是它与平台无关,即只要它具有支持HTML5的现代Web浏览器,就可以在iOS,Android等上运行它.

现在我已经使用HTML5本地存储(用于数据)和HTML5离线应用程序缓存(用于pages/css/js/images)构建了系统,并且它可以很好地处理小数据集(我可以查看,编辑和保存)在线时离线和加载/同步).现在我需要扩展到10,000行数据.它工作正常,但它很慢,并在加载到英特尔四核8GB机器上时将浏览器挂起10秒.

所以我一直在研究一些比本地存储更好的选择:

1)WebSQL:能够使用SQL语言查询数据并进行连接等问题是它现在已被弃用,不再支持了,所以我不想花时间为它构建一些东西.

2)IndexedDB:使用对象存储(从技术上讲,我已经使用本地存储API存储对象并使用JSON存储).由于它使用带有SQL lite后端的索引,因此可能更快.有许多样板代码可用于执行简单的任务,例如创建数据库,添加数据库,读取数据库,迭代数据库.我只是想做一个简单的查询,select(xyc, abc).where(abc = 123).limit(20)但是必须编写很多JavaScript代码来完成它.如何编写自己的代码来在表之间进行连接,任何地方的任何示例?

我发现了一个可能让生活更简单的jQuery插件.是否有其他库或其他库可以减轻使用IndexedDB的痛苦?

非常感谢!

javascript jquery local-storage web-storage indexeddb

9
推荐指数
1
解决办法
2947
查看次数

8
推荐指数
4
解决办法
5450
查看次数

检测Firefox IndexedDB或Web存储存储限制,而不填满磁盘?

我想使用IndexedDB处理大量数据.太多的数据要适合内存.为此,我想使用Firefox的IndexedDB持久存储,它允许我存储超过2GB的数据(Firefox显然对非持久存储有2GB的限制).

但是,我遇到了一个问题.Firefox似乎没有对我可以存储在持久存储中的数据量施加限制.事实上,如果我让以下示例运行,它将显然运行直到磁盘已满!

示例(在线)(必须在Firefox中运行!):

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Firefox IndexedDB Limit Test</title>
    </head>
    <body>
        <script>
(function() {
'use strict';

var IDBReq = indexedDB.open('testdb', {
    version: 1,
    storage: 'persistent'
});

IDBReq.onupgradeneeded = function() {
    this.result.createObjectStore('data');
};

var logmsg;
IDBReq.onsuccess = function() {
    var DB = this.result;
    var size = 0;

    var next = function(i) {
        var data = new Uint8Array(0xFFFF);
        crypto.getRandomValues(data);

        size += data.length;
        logmsg = 'size: ' + size + …
Run Code Online (Sandbox Code Playgroud)

javascript firefox gecko web-storage indexeddb

8
推荐指数
1
解决办法
629
查看次数