SlideShare a Scribd company logo
1 of 15
Download to read offline
Dexie.js
@4245Ryomt
IAM
鈴木
大学生
@4245Ryomt
Dexie.js
こんな人へ
ブラウザ等閉じても状態が消えないようにしたい!
簡単に!
Dexie.js
A Minimalistic Wrapper for indexedDB
‑> indexedDBのラッパーライブラリ
http://dexie.org/
IndexedDB
ファイルやblobを含む構造化された多くのデータを保存するAPI
オブジェクト指向データベース
構造家された多くのデータを保存するのに有用
DOM Storage ‑> 少量データの保存に有用
https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API
IndexedDB
主観
つかうのが割と難しい
コネクション...トランザクション...
カーソル??
もっと簡単に使いたい
客観
非同期をコールバックで扱うので辛い
Promiseで扱いたい
Dexie.js
わかりやすいAPI
使うのは簡単
非同期はPromise
どんだけ簡単なんだ
データベースの定義
IndexedDB
let db = null;
let dbOpenRequest = window.indexedDB.open(databaseName, version);
dbOpenRequest.onsuccess = (event) => {
  db = event.target.result;
};
dbOpenRequest.onupgradeneeded = (event) => {
  const db = event.target.result;
  const objectStore = 
    db.createObjectStore('todos', { keyPath: 'id' });
  objectStore.createIndex('text', 'text', { unique: false });
};
データベースの定義
Dexie.js
  const db = new Dexie(databaseName);
  const version = 2;
  db.version(version).stores({
    todos: 'id,text'
  });
クエリー操作
IndexedDB
const sayEqualRange = IDBKeyRange.only("say");
const todoStore = db.transaction("todos").objectStore("todos");
const textIndex = todoStore.index("text");
textIndex.openCursor(sayEqualRange).onsuccess = event => {
      const cursor = event.target.result;
  if (cursor) {
        console.log(cursor.value)
          cursor.continue();
      }
};
クエリー操作
Dexie.js
db.todos.where("text")
  .equals("say")
      .forEach(todos => console.log(todos))
いい感じ!
わかりやすいAPIドキュメント
https://github.com/dfahlander/Dexie.js/wiki
TypeScriptならこんな感じで書けるぜ!なドキュメント
https://github.com/dfahlander/Dexie.js/wiki/Typescript
Dexie.js

More Related Content

What's hot

ダイナミックDNSとは
ダイナミックDNSとはダイナミックDNSとは
ダイナミックDNSとはTakeshi Kabu
 
パケット キャプチャで学ぶ SMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶ SMB (CIFS) の基本彰 村地
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)iPride Co., Ltd.
 
いろいろなデバイスでOpenVNetを動かしてみようとした。
いろいろなデバイスでOpenVNetを動かしてみようとした。いろいろなデバイスでOpenVNetを動かしてみようとした。
いろいろなデバイスでOpenVNetを動かしてみようとした。skipping classes
 
NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014Ryo ONODERA
 
FreeBSD VPSでLive Migration
FreeBSD VPSでLive MigrationFreeBSD VPSでLive Migration
FreeBSD VPSでLive Migrationspg_games
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~sakaik
 
Rust と Wasmの現実
Rust と Wasmの現実Rust と Wasmの現実
Rust と Wasmの現実ShogoTagami1
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバーemasaka
 
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜furandon_pig
 
新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術r新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術ryuki kashiwaba
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説知教 本間
 
VPS・専用・クラウドサーバを使う時に知っておきたいこと
VPS・専用・クラウドサーバを使う時に知っておきたいことVPS・専用・クラウドサーバを使う時に知っておきたいこと
VPS・専用・クラウドサーバを使う時に知っておきたいことKatz Ueno
 
芸術情報演習デザイン(Web) 130411
芸術情報演習デザイン(Web) 130411芸術情報演習デザイン(Web) 130411
芸術情報演習デザイン(Web) 130411Atsushi Tadokoro
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたbasicinc_dev
 
OpenStack Kuryrについて
OpenStack KuryrについてOpenStack Kuryrについて
OpenStack Kuryrについてskipping classes
 

What's hot (20)

ダイナミックDNSとは
ダイナミックDNSとはダイナミックDNSとは
ダイナミックDNSとは
 
パケット キャプチャで学ぶ SMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶ SMB (CIFS) の基本
 
Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)Indexed DBについて(書きかけ)
Indexed DBについて(書きかけ)
 
Ib資料20090222
Ib資料20090222Ib資料20090222
Ib資料20090222
 
いろいろなデバイスでOpenVNetを動かしてみようとした。
いろいろなデバイスでOpenVNetを動かしてみようとした。いろいろなデバイスでOpenVNetを動かしてみようとした。
いろいろなデバイスでOpenVNetを動かしてみようとした。
 
NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014NetBSD on Conoha VPS at JNUG BoF 2014
NetBSD on Conoha VPS at JNUG BoF 2014
 
FreeBSD VPSでLive Migration
FreeBSD VPSでLive MigrationFreeBSD VPSでLive Migration
FreeBSD VPSでLive Migration
 
Bsdtw repo
Bsdtw repoBsdtw repo
Bsdtw repo
 
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
OSC2017 Hokkaido. MySQL今こそインストールを極めよう~改めて考える環境構築~
 
Rust と Wasmの現実
Rust と Wasmの現実Rust と Wasmの現実
Rust と Wasmの現実
 
Node.js入門
Node.js入門Node.js入門
Node.js入門
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
 
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
 
新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術r新人営業のためのよくわかる仮想化技術r
新人営業のためのよくわかる仮想化技術r
 
MongoDBざっくり解説
MongoDBざっくり解説MongoDBざっくり解説
MongoDBざっくり解説
 
VPS・専用・クラウドサーバを使う時に知っておきたいこと
VPS・専用・クラウドサーバを使う時に知っておきたいことVPS・専用・クラウドサーバを使う時に知っておきたいこと
VPS・専用・クラウドサーバを使う時に知っておきたいこと
 
FreeBSD Capsicum
FreeBSD CapsicumFreeBSD Capsicum
FreeBSD Capsicum
 
芸術情報演習デザイン(Web) 130411
芸術情報演習デザイン(Web) 130411芸術情報演習デザイン(Web) 130411
芸術情報演習デザイン(Web) 130411
 
Linuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみたLinuxのファイルシステムについて調べてみた
Linuxのファイルシステムについて調べてみた
 
OpenStack Kuryrについて
OpenStack KuryrについてOpenStack Kuryrについて
OpenStack Kuryrについて
 

Similar to Dexiejs

Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3infinite_loop
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~じゅん なかざ
 
S2dao Seminar in tripodworks
S2dao Seminar in tripodworksS2dao Seminar in tripodworks
S2dao Seminar in tripodworkstripodworks
 
更に進化するCSSの表現力と 新しいWebツール [Reloaded]
更に進化するCSSの表現力と 新しいWebツール [Reloaded]更に進化するCSSの表現力と 新しいWebツール [Reloaded]
更に進化するCSSの表現力と 新しいWebツール [Reloaded]Keisuke Todoroki
 
Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Nao Oec
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門じゅん なかざ
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdftoshiki kawai
 
17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分Keiji Kamebuchi
 
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナー
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナートランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナー
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナーTakayuki Nakayama
 
そこそこ速くて安全なRDBの使い方
そこそこ速くて安全なRDBの使い方そこそこ速くて安全なRDBの使い方
そこそこ速くて安全なRDBの使い方ShunsukeNakamura17
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA CLOUDIAN KK
 
2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料豊 満石
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Yohei Sasaki
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうyoshikawa_t
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~decode2016
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsTadahiro Ishisaka
 

Similar to Dexiejs (20)

Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
 
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
 
S2dao Seminar in tripodworks
S2dao Seminar in tripodworksS2dao Seminar in tripodworks
S2dao Seminar in tripodworks
 
更に進化するCSSの表現力と 新しいWebツール [Reloaded]
更に進化するCSSの表現力と 新しいWebツール [Reloaded]更に進化するCSSの表現力と 新しいWebツール [Reloaded]
更に進化するCSSの表現力と 新しいWebツール [Reloaded]
 
Docomo Cloud Package
Docomo Cloud PackageDocomo Cloud Package
Docomo Cloud Package
 
Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境Dockerで作るd3.jsインタラクション共有&DL環境
Dockerで作るd3.jsインタラクション共有&DL環境
 
PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門PHP開発者のためのNoSQL入門
PHP開発者のためのNoSQL入門
 
Mongodb
MongodbMongodb
Mongodb
 
2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf2022_sakura-yube_ddd.pdf
2022_sakura-yube_ddd.pdf
 
17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分17 E-5 震災とHackとクラウドと 亀渕分
17 E-5 震災とHackとクラウドと 亀渕分
 
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナー
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナートランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナー
トランザクションもDWHもクラウドで 2015年10月~IBM OnDemandセミナー
 
そこそこ速くて安全なRDBの使い方
そこそこ速くて安全なRDBの使い方そこそこ速くて安全なRDBの使い方
そこそこ速くて安全なRDBの使い方
 
Cloudian presentation for OSCA
Cloudian presentation for OSCA Cloudian presentation for OSCA
Cloudian presentation for OSCA
 
Database sql
Database sqlDatabase sql
Database sql
 
DBpedia Japanese
DBpedia JapaneseDBpedia Japanese
DBpedia Japanese
 
2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料2010/12/16 FxUG Robotlegsの発表資料
2010/12/16 FxUG Robotlegsの発表資料
 
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
 
HTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろうHTML5でオフラインWebアプリケーションを作ろう
HTML5でオフラインWebアプリケーションを作ろう
 
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
INF-015_そこのコンテナ、うまく積めてるね! ~Windows アプリケーション コンテナの展開と運用~
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
 

Dexiejs