ラベル API の投稿を表示しています。 すべての投稿を表示
ラベル API の投稿を表示しています。 すべての投稿を表示

2015/07/04

IndexedDBのKeyにはboolean型ではなく0と1を使う

結論から書くと「IndexedDBのKeyにboolean型は使えない

でも、boolean型のデータは登録・取得できる。
登録・取得できるものだから、てっきりIDBKeyRange.only(true)とかできるのかと思ったらできなかった。

その対処方法をまとめていく。



IndexedDBで使用できるKey


  • Number primitive value
  • String primitive value
  • Date object
  • Array object

Array型だけはちょっとだけクセがあるみたいだけど、使えるのはこの4つだけ。
詳しくは、Indexed Database API - Keys を参照しいてほしい。

2015/06/26

chrome.runtime.sendMessageでcontent_scriptsとbackground間で通信する方法

photo by gfpeck

Chrome Extensionsをつくっていたところ、same-origin policy(同一生成元ポリシー)に阻まれてしまった。
具体的にいうと、content_scriptsでとあるサイトの情報をIndexedDBに登録して、他のページでその情報を表示するということがしたかった。

いろいろググってみたところ、chrome.runtime.sendMessage, onMessageというものを使えば実現できるかもしれないと気づいた。
※ Chrome Extensions以外ならpostMessageやJSONPがヒントになるかも


前置きが長くなってしまったが、chrome.runtime.sendMessagechrome.runtime.onMessageを使ってcontent_scripts - background間で通信する方法をまとめる。


2015/03/27

IndexedDBで部分一致、前方一致、後方一致検索をする

photo by Tim Reckmann

IndexedDBでSQLでいうところのLike演算子はどうすれば実現できるのかを調べたので、その方法をまとめる。

IndexedDBの基本的なところは、TypeScriptでIndexedDBの登録・更新・削除・検索をするを参考にしてほしい。
また、この記事のWebフォームをそのまま使う。
※TypeScriptと書いてあるけど、JavaScriptのソースコードもあるので、参考にどーぞ!

2015/03/26

TypeScriptでIndexedDBの登録・更新・削除・検索をする

IndexedDBは、HTML5で動作するKey-Value型のローカルストレージ。
簡単に言うと、ブラウザを閉じても保存しておきたいデータを格納するための仕組み。

他にもWebStorageやWebSQLなどがある。
今後は、IndexedDBが最も利用されるデータベースになる! ……らしい。

当エントリは、最近個人的に勉強を始めた「TypeScript」でIndexedDBを操作する方法をまとめる。
最後にコンパイルしたJavaScriptも載せておくので、TypeScriptに興味ない人はそちらを参照ください。

開発環境

  • TypeScript 1.4
  • Visual Studio Community 2013
  • InternetExplorer 11 / Google Chrome 41