localstorage-down

A Node.js and browserify leveldown API implementation that maps to localstorage in the browser

localstorage-down

LocalStorage implementation of leveldown for mobile and desktop browsers. The idea is to be able to use the level stack on any browser that supports LocalStorage.

The scenarios envisaged are:

  1. Occasionally connected clients
  2. Ad-hoc networks where clients need to sync directly with each other

This project is intended for use with the level eco-system.

Install

npm install localstorage-down

Browser support

Basically we support any browser that has LocalStorage, but since we also rely on an ES5 environment due to dependencies from abstract-leveldown, in practice you will need the following shims in order to work correctly on all browsers (e.g. IE 8-9, Android 2.3):

We run automated tests in the following browsers:

  • Firefox: 40-latest
  • Chrome: 44-beta
  • IE: 9-11
  • Edge: latest
  • Safari: 7.0-latest
  • iPhone: 8.0-latest
  • Android: 4.1-latest

In environments without LocalStorage, such as Node or Safari private browsing, this module will fall back to a temporary in-memory implementation, thanks to humble-localstorage.

Example

At the command prompt in your chosen directory :

npm install localstorage-down
npm install levelup 
npm install browserify -g
npm install beefy -g

Create a file called index.js and enter the following:

var localstorage = require('localstorage-down');
var levelup = require('levelup');
var db = levelup('dbname', { db: localstorage });

db.put('name', 'James Dean');
db.put('dob', 'February 8, 1931');
db.put('occupation', 'Rebel');
db.put('cause', 'none');

db.readStream()
   .on('data', function (data) {
      if (typeof data.value !== 'undefined') {
         console.log(data.key, '=', data.value);
      }
   })
   .on('error', function (err) {
      console.log('Oh my!', err);
   })
   .on('close', function () {
      console.log('Stream closed');
   })
   .on('end', function () {
     console.log('Stream ended');
   });

Publish the site :

beefy index.js

See the output :

http://localhost:9966

Listen to John Cage:

https://www.youtube.com/watch?v=9hVFCmK6GgM

Tests

npm run test

This will run tests in Node against localstorage-memory.

To test in Saucelabs, you can run e.g.:

npm run test-browser

Or to test in Zuul locally:

npm run test-zuul-local

To test and check code coverage, run:

npm run coverage

To test and report code coverage to Coveralls, run:

npm run report-coverage

Contributors

Repository

https://github.com/no9/localstorage-down.git


上一篇:pouchdb-extended
下一篇:wanache-core

相关推荐

  • 详解Cookie,localStorage与seesionStorage

    前言 这些api的发展历程? 这些api各自的优缺点是什么? 这些api的使用场景? 怎么用就不说了,因为直接看文档就可以了 参考了很多篇文章,现在把所看的内容总结一下。

    2 年前
  • 让HTML5 localStorage键

    Brian Tompsett - 汤莱恩Simone提出了一个问题:Get HTML5 localStorage keys,或许与您遇到的问题类似。 回答者Kevin Ennis给出了该问题的处理方式...

    3 年前
  • 给localStorage加上过期时间

    一、酷酷的开头 在潜水的时间长达一年之后,我终于鼓起勇气开始写我的第一篇文章了。前端小菜,只是想记录一下自己的想法,望各位看到这文的大佬轻喷。 在现在前后端分离的开发模式下,存储信息一般都不在使用以往...

    1 年前
  • 细说localStorage, sessionStorage, Cookie, Session

    localStorage和sessionStorage 两者的共同点在于: 1、存储大小均为5M左右 2、都有同源策略限制 3、仅在客户端中保存,不参与和服务器的通信 两者的不同点在于: 1、生命周期...

    2 年前
  • 细说Cookie,LocalStorage,SessionStorage

    面试题目中经常被问到Cookie和LocalStorage的区别,可见其在项目开发中的重要性,这篇文章旨在详细阐述这部分内容。概念 1.Cookie Cookie分为内存Cookie和硬盘Cooki...

    1 年前
  • 第48期 前端存储除了localStorage还有啥 & webpack性能优化面面观 & 详解JavaScript执行上下文

    前端存储除了 localStorage 还有啥 前端的数据存储方式,你除了用过 Cookies、localStorage 和 sessionStorage 外,还有用过其它的存储方式么?其实除了前面提...

    3 个月前
  • 用vue2.0+vuex+localStorage撸个代办事项小应用

    写在前面 这个demo虽然功能少,但是vuex知识点大部分都在这里面了,麻雀虽小 五脏内全 如果你觉的对你有帮助帮忙点个star谢谢 感谢大佬! 这是用vue2.0写的商城 高仿vivo商城 地址在...

    2 年前
  • 用localStorage存储购物车数据实战

    最近做了一个商城项目,那肯定要做个购物车的嘛,于是我就想用localstorage存储商品,以便用户下次进入网页还可以看到自己收藏过的商品。业务方面,就保存商品数量、商品id和商品详情就好了。

    1 年前
  • 浏览器端数据库存储方案的整理 -- indexDB 和 localStorage

    查看原文 有些安全性不太重要的数据,我不想花大力气搞一台服务器,再安装mysql或者 monogdb,再写点rest接口。这也太麻烦了,浏览器里本来就有很好用的数据库。

    2 年前
  • 浏览器存储技术cookie、localStorage、indexDB等

    首先我们说一下以下讲的数据不是储存在通常的数据库中,而是储存在客户端浏览器中的,基于这个特点,浏览器的同源策略限制了这些客户端存储的分界点是当前域名,不可能你在juejin.im里面存的数据能在bai...

    4 个月前

官方社区

扫码加入 JavaScript 社区