Indexed Database API ã«ã¤ãã¦
Indexed Database APIï¼ä»¥ä¸ãindexedDBï¼ã«ã¤ãã¦ãããã¾ã§è¿½ãããã¦ããæ
å ±ãã¨ãã¾ã¨ããã®ã§å
¬éãã¾ãã
indexedDBã¯å½åã¯ä»æ§ãåºã¾ã£ã¦ãããããµã³ãã«ã³ã¼ããå½ç¶ã®ããã«åããªãã£ãã®ã§ï¼ä»ãåãã¾ãããâ¦ï¼ãæ¤è¨¼ããã«ã¯ããªããã¼ããªç¶æ³ã§ãããæè¿ã«ãªã£ã¦ã©ãã«ãåãããã«ãªã£ã¦ããã®ã§ã@komasshu ããã¨è²ã
ããåãããªããä¸éãã®åä½ã確èªãã¾ããã
ç¾æç¹ã§å©ç¨ã§ãããã©ã¦ã¶ã¯ Chrome 9 以é ã¾ã㯠Firefox 4 beta 8 以éã¨ãªãã¾ããã¾ã ã¾ã ä»æ§ã¯åãã¦ãã¾ãã®ã§ãæ¤è¨¼ã®éã¯ããªãã¹ãææ°ã®éçºçã使ããã¨ããããããã¾ããæ¬ã¨ã³ããªã¼ã§ã¯ãChrome 9 beta ãFirefox 4 beta 8 ã«ã¦æ¤è¨¼ãã¾ããã¾ããè³æã¯ã2011å¹´1æ20æ¥æç¹ã® W3C Editor's Draft ãåç
§ãã¦ãã¾ãã
1. Indexed Database API ã¨ã¯
indexedDBã¯ããã©ã¦ã¶ãæ㤠NoSQL ãã¼ã¹ã®ãã¼ã¿ãã¼ã¹ã§ãããªãªã¸ã³ï¼Origin*1ï¼ãã¨ã«åºæã®é åãæã¡ãè¤æ°ã®ãã¼ã¿ãã¼ã¹ãä¿æãããã¨ãã§ãã¾ãã
2. åºæ¬çãªä½¿ãæ¹
(1) ãã¼ã¿ãã¼ã¹ã®ä½æï¼æ¥ç¶ï¼
ç¾æç¹ã§ã¯ indexedDBï¼IDBFactoryï¼ã«ãã³ãã¼ããªãã£ãã¯ã¹ãä»ãã¦ã¢ã¯ã»ã¹ãã¾ããChrome ã§ããã°ãwebkitIndexedDBãFirefoxã§ããã° moz_indexedDBï¼beta8ï¼ãã¾ã㯠mozIndexedDBï¼beta9ï¼ã§ãã
ãµã³ãã«ã³ã¼ã1
//ChromeãFirefoxã®ãã³ãã¼ããªãã£ãã¯ã¹å¯¾å¿ var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB || window.moz_indexedDB; //ãã¼ã¿ãã¼ã¹ä½æï¼æ¥ç¶ï¼ var db = null; var req = indexedDB.open("library"); //æåæã³ã¼ã«ãã㯠req.onsuccess = function(evt) { db = evt.result; }; //失ææã³ã¼ã«ãã㯠req.onerror = function(err) { alert(err.code + ":" + err.message); };
ãã¼ã¿ãã¼ã¹æä½ã®çµæã¯ããªã¯ã¨ã¹ãï¼IDBRequest)ã®ã³ã¼ã«ããã¯ã«ç»é²ãããã¨ã«ãªãã¾ãã
(2) ãªãã¸ã§ã¯ãã¹ãã¢ã»ã¤ã³ããã¯ã¹ã®ä½æ
ãªãã¸ã§ã¯ãã¹ãã¢ã¯ããã¼ã¿ãæ ¼ç´ããããã®å
¥ãç©ã§ããRDBMSã®ãã¼ãã«ã«ç¸å½ãã¾ãããªãã¸ã§ã¯ãã¹ãã¢ãåã³ã¤ã³ããã¯ã¹ã®ä½æã¨åé¤ã¯ãã¼ã¿ãã¼ã¹ã®ãã¼ã¸ã§ã³å¤æ´æã«ããè¡ããã¨ãã§ãã¾ããã®ã§ã注æãå¿
è¦ã§ãã
ãµã³ãã«ã³ã¼ã2
//DBã®ãã¼ã¸ã§ã³å¤æ´ var verReq = db.setVersion("1.0"); verReq.onsuccess = function(evt) { //ãªãã¸ã§ã¯ãã¹ãã¢ä½æï¼in-line key ã¨ã㦠isbn ãæå®ï¼ var store = db.createObjectStore("books", "isbn", false); //Chromeã®å ´åã以ä¸ã®ããã«è¨è¼ //var store = db.createObjectStore("books", {"keyPath": "isbn"}, false); //ã¤ã³ããã¯ã¹ä½æ store.createIndex("name", false); };
ãªãã¸ã§ã¯ãã¹ãã¢ã«ã¯ãåãã¼ã¿ãä¸æã«èå¥ãããã¼ãå¿ è¦ã§ãããã¼ã¯ãcreateObjectStore ã®ç¬¬2å¼æ°ã§æå®ãã¾ãããã¼ã«ã¯ã2種é¡ããããã¼ãæå®ããå ´åã® in-line key ãçç¥ããå ´åã® out-of-line key ãããã¾ãããã¼ã®ç¨®é¡ãåã³ç¬¬3å¼æ°ã® autoIncrement ã®å¤ã§ãã¼ã¿è¿½å æã®åä½ãç°ãªãã¾ãã
ã»in-line key
ãã¼ã¿å
ã®ããããã£ããã¼ã¨ãã¾ãããã¼ã¿è¿½å æã«ã¯ã該å½ããããã£ã«å¤ãåå¨ããå¿
è¦ãããã¾ãã
autoIncrement ã true ã®å ´åã該å½ããããã£ã¯åå¨ããªãã¦ãåé¡ããã¾ããã
ã»out-of-line key
ãã¼ã¿ã®å¤ã«ãã¼ãæã¡ã¾ãããã¼ã¿è¿½å æã«ã¯ãå¥éãã¼ã渡ãå¿
è¦ãããã¾ãã
autoIncrement ã true ã®å ´åãå¥éãã¼ã渡ãå¿
è¦ã¯ããã¾ããã
(3) ãã¼ã¿ã®è¿½å ã»åé¤
ãªãã¸ã§ã¯ãã¹ãã¢ã«æ ¼ç´ã§ãããã¼ã¿ã¯ããã®åã®éããªãã¸ã§ã¯ãï¼structured clone*2ï¼ã§ãããã¼ã¿ã¯ãã©ã³ã¶ã¯ã·ã§ã³ãçµç±ãã¦æä½ãã¾ãã
ãµã³ãã«ã³ã¼ã3
//Chromeã®ãã³ãã¼ããªãã£ãã¯ã¹å¯¾å¿ var IDBTransaction = window.IDBTransaction || window.webkitIDBTransaction; //ãã¼ã¿ä½æ var book = { name: "å¾¹åºè§£èª¬ HTML5 APIã¬ã¤ããã㯠ã³ãã¥ãã±ã¼ã·ã§ã³ç³»APIç·¨", description: "AjaxãHTTPã§é«éãªãªã¢ã«ã¿ã¤ã éä¿¡ã¢ããªã±ã¼ã·ã§ã³éçºãå¯è½ã«ããæ°APIã®ä»æ§ã¨ä½¿ãæ¹ã詳細ã«è§£èª¬ã", author: "å°æ¾ å¥ä½", isbn: "4798028215" }; //ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§ã¨ãªãã¸ã§ã¯ãã¹ãã¢ã®åå¾ var store = db.transaction([], IDBTransaction.READ_WRITE).objectStore("books"); //ãã¼ã¿è¿½å store.add(book); //putã§ãåæ§ã®çµæãå¾ããã //ãã¼ã¿åé¤ store.delete("4798028215");
ãªãã¸ã§ã¯ãã¹ãã¢ä½ææã«ãisbn ã in-line key ã«æå®ãã¦ããã®ã§ããã¼ã¿ä½ææã«å¤ãã»ãããã isbn ã key ã«ãªãã¾ãããã ã Chrome ã§ã¯ãã¾ã in-line key ã®æå®ãç¡è¦ãããã®ã§ãã³ã¡ã³ãã®ããã«è¨è¿°ããªãã¨åä½ãã¾ãããcreateObjectStoreã«ç¬¬2å¼æ°ã«{"keyPath": "isbn"}ã®ããã«æå®ããã¨åä½ããããã§ãã
æå¹ãªãã¼ã¯ãstringãdateãlongãfloat ã§ããnull åã³ floatã® Inifinite ã¯æå¹ãªãã¼ã§ãããNaN ã¯ç¡å¹ã§ããã¾ããundefined ã¯è¨±å¯ããã¦ãã¾ããã
(4) ãã¼ã¿ã®æ¤ç´¢ã»å¤æ´
ãã¼ã¿ã®æ¤ç´¢æ¹æ³ã«ã¯ã1件ã ãåå¾ãã get 㨠è¤æ°åå¾ããããã® openCursor ãããããã¼ã¿ãå¤æ´ãããå ´åãopenCursor ã§åå¾ãã¦ããè¡ãã¾ãã
ãµã³ãã«ã³ã¼ã4ããããã¼ã¿ã®æ¤ç´¢
//ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§ã¨ãªãã¸ã§ã¯ãã¹ãã¢ã®åå¾ var store = db.transaction().objectStore("books"); //Firefox4ã®å ´åãtransactionã®å¼æ°ã®çç¥ãã§ããªãã®ã§nullãå ¥ãã¦ãã //var store = db.transaction(null).objectStore("books"); //get var req = store.get("4798028215"); req.onsuccess = function(evt) { var value = evt.result; console.log(value); }; //openCursorãã¤ã³ããã¯ã¹çµç±ã§åå¾ var req = store.index("name").openCursor("å¾¹åºè§£èª¬ HTML5 APIã¬ã¤ããã㯠ã³ãã¥ãã±ã¼ã·ã§ã³ç³»APIç·¨"); req.onsuccess = function(evt) { var cursor = evt.result; if ( cursor ) { console.log(cursor.value); //Firefox4ã®å ´åãindexçµç±ã ã¨valueã«keyãå ¥ã£ã¦ããã®ã§å度æ¤ç´¢ //var getReq = store.get(key).onsuccess = function(getEvt){ // console.log(getEvt.result); //}; cursor.continue(); } };
get ã®çµæã«è¤æ°ã®ãã¼ã¿ãããå ´åã¯ãæåã®1件ã®ã¿åå¾ã§ãã¾ããã¾ããã¤ã³ããã¯ã¹ãå©ç¨ããå ´åã get ãopenCorsor çãåæ§ã®ã¡ã½ãããããã®ã§åãæ¹æ³ã§åå¾ãããã¨ãã§ãã¾ãã
ãµã³ãã«ã³ã¼ã5ããããã¼ã¿ã®å¤æ´
//Chromeã®ãã³ãã¼ããªãã£ãã¯ã¹å¯¾å¿ var IDBKeyRange= window.IDBKeyRange|| window.webkitIDBKeyRange; //ãã©ã³ã¶ã¯ã·ã§ã³ã®éå§ã¨ãªãã¸ã§ã¯ãã¹ãã¢ã®åå¾ï¼READ_WRITEï¼ var store = db.transaction([], IDBTransaction.READ_WRITE).objectStore("books"); //ãã¼ãç¯å²æå®ããã«ã¯IDBKeyRangeã使ãã var req = store.openCursor(IDBKeyRange.lowerBound("4844329278", false)); req.onsuccess = function(evt) { var cursor = evt.result; if ( cursor ) { //descriptionå¤æ´ãchangedãã©ã°è¿½å var book = cursor.value; book.description = "updated"; book.changed = true; //ãã¼ã¿å¤æ´åæ cursor.update(book); cursor.continue(); } };
ãã¼ã¿ã®å¤æ´ãè¡ãå ´åã¯ããã©ã³ã¶ã¯ã·ã§ã³ã READ_WRITE ã§éå§ãã¾ããã«ã¼ã½ã«ã使ã£ã¦ãã¼ã¿ãåå¾å¾ãå¤æ´ããåããã«ã¼ã½ã«ã® update ã¡ã½ãããä»ãã¦å¤æ´ãåæ ãã¾ããããããã£ã®è¿½å ãªã©ãåé¡ãªãã§ãã¾ãã
(5) ãã®ä» Tips
ã»ãã¼ã¿ã®ã½ã¼ã
ãªãã¸ã§ã¯ãã¹ãã¢å
ã®ãã¼ã¿ã¯ããã¼ã®æé ã§æ ¼ç´ããã¦ãã¾ãããã®ãããæé ã§åå¾ããå¿
è¦ãããã°ããã®ã¾ã¾åå¾ãã¾ããéé ã§åå¾ããããã°ãopenCursor æã®ç¬¬2å¼æ°ã§ãIDBCursor.PREV ãæå®ãã¾ããã¤ã³ããã¯ã¹ã§ãåæ§ã§ãã
//Chromeã§ã®å®è¡ä¾ var req = db.transaction().objectStore("books").index("name").getCursor("", webkitIDBCursor.PREV); req.onsuccess = function(evt) { var cursor = evt.result; if ( cursor ) { //éé ã«ãã¼ã¿åå¾ console.log(cursor.value); cursor.continue(); } };
å¿ç¨ã¨ãã¦ãæå°å¤ãæ大å¤ãåå¾ãããå ´åã¯ã対象ã®ããããã£ã«ã¤ã³ããã¯ã¹ãä½æãã¦ãæåã®1件ãåå¾ããã°æ±ãããã¾ãã
ãã¼ã®é åºã¯ãstringãdateãlongã¨floatã¨ãªã£ã¦ãããlongã¨floatã¯ãã®æ°å¤ã§æ¯è¼ããã¾ãã
ã»ãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããã¨ãã¼ã«ããã¯
ãã©ã³ã¶ã¯ã·ã§ã³ã®ã³ãããã¯ãå¥ã®ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããããããã©ã³ã¶ã¯ã·ã§ã³ãçºçããã¡ã½ãããçµäºããã°ãæé»çã«ã³ãããããã¾ãããã¼ã«ããã¯ã¯ã¨ã©ã¼ãã¿ã¤ã ã¢ã¦ããçºçããå ´åã«ã¯èªåçã«ãã¼ã«ããã¯ããã¾ãããæ示çã«æå®ãããå ´åã¯ãabort ã使ãã¾ãã
//ãã©ã³ã¶ã¯ã·ã§ã³éå§ var tx = db.transaction([], IDBTransaction.READ_WRITE); /* è¤æ°ã®ãã¼ã¿æä½ */ //ãã©ã³ã¶ã¯ã·ã§ã³ã®ä¸æã¨ãã¼ã«ãã㯠tx.abort();
ãã¼ã¿ãã¼ã¹ã®ãã¼ã¸ã§ã³å¤æ´æã¯ããªã¯ã¨ã¹ãã® result ã«å
¥ã£ã¦ãããã©ã³ã¶ã¯ã·ã§ã³ã使ã£ã¦ãã¼ã«ããã¯ãã¾ãã
//ãã©ã³ã¶ã¯ã·ã§ã³éå§ var req = db.setVersion("1.1"); req.onsuccess = function(evt) { var tx = evt.result; /* ã¹ãã¼ãã®å¤æ´ãªã© */ //ãã©ã³ã¶ã¯ã·ã§ã³ã®ä¸æã¨ãã¼ã«ãã㯠tx.abort(); };
3. ç°¡æAPIä¸è¦§
IDBFactory
IDBRequest
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
onsuccess | ãªã¯ã¨ã¹ãæåæã³ã¼ã«ãã㯠| â | â | |
onerror | ãªã¯ã¨ã¹ã失ææã³ã¼ã«ãã㯠| â | â | |
readyState | ãªã¯ã¨ã¹ãã®ç¶æ
LOADING: å®è¡ä¸ DONE: å®äº |
â | â |
IDBDatabase
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
name | DBå | â | â | |
objectStoreNames | DBã«æ ¼ç´ããã¦ããå ¨ãªãã¸ã§ã¯ãã¹ãã¢ã®åå | â | â | |
version | DBã®ãã¼ã¸ã§ã³ | â | â | |
close() | DBæ¥ç¶ãéããã | - | â | |
createObjectStore(name, keyPath, autoIncrement) | nameã§æå®ããããªãã¸ã§ã¯ãã¹ãã¢ãä½æããã | â³ | â | Chrome 㯠keyPath ã{"keyPath": "keyPath"}ã®ããã«ãªãã¸ã§ã¯ãã§æ¸¡ãã¾ãã |
deleteObjectStore(name) | nameã§æå®ããããªãã¸ã§ã¯ãã¹ãã¢ãåé¤ããã | â | â | |
setVersion(version) | DBãã¼ã¸ã§ã³ãæ´æ°ããã | â | â | 以ä¸ã®ã¡ã½ããã¯ããã¼ã¸ã§ã³æ´æ°ã®ã³ã¼ã«ããã¯ã§ããå®è¡ã§ããªãã createObjectStore deleteObjectStore createIndex deleteIndex |
transaction(storeNames, mode, timeout) | storeNamesã§æå®ããããªãã¸ã§ã¯ãã¹ãã¢ï¼ããã©ã«ãï¼å
¨ãªãã¸ã§ã¯ãã¹ãã¢ï¼ã対象ã¨ãã¦ãã©ã³ã¶ã¯ã·ã§ã³ãéå§ããã modeã§ãã©ã³ã¶ã¯ã·ã§ã³ã®ç¨®é¡ãæå®ããã READ_ONLY: èªè¾¼å°ç¨ READ_WRITE: æ¸è¾¼å¯è½ VERSION_CHANGE: ãã¼ã¸ã§ã³æ´æ° ï¼ããã©ã«ãï¼READ_ONLYï¼ timeout ããªç§åä½ï¼ããã©ã«ãï¼ãã©ã¦ã¶åºæï¼ |
â | â | å¼æ°ã¯ãã¹ã¦ãªãã·ã§ã³ã ããFirefox 㯠transaction() ã®ãããªè¨è¿°ãã§ããªããChromeãFirefoxã¨ãã«timeoutã¯ç¡è¦ãããã |
IDBObjectStore
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
name | ãªãã¸ã§ã¯ãã¹ãã¢å | â | â | |
keyPath | ãã¼ã®ããããã£å | â | â | |
indexNames | ãªãã¸ã§ã¯ãã¹ãã¢ã«è¨å®ãããã¤ã³ããã¯ã¹å | â | â | |
put(value, key) | ãªãã¸ã§ã¯ãã¹ãã¢ã«ãã¼ã¿ã追å ãããkeyã¯ããªãã¸ã§ã¯ãã¹ãã¢ä½ææã«ããã¼ã¨ãã¼ã®èªåçæãæå®ããªãå ´åã«å¿ é ã¨ãªãã | â | â | |
add(value, key) | putã¨åæ§ã | â | â | |
delete(key) | keyï¼ãªãã©ã«ã®ãã¼å¤ï¼ã®ãã¼ã¿ãåé¤ããã | â | â | |
get(key) | keyï¼ãªãã©ã«ã®ãã¼å¤ã¾ãã¯ãIDBKeyRangeï¼ã®ãã¼ã¿ãåå¾ãããè¤æ°ããå ´åã¯ãæåã®1件ãè¿ãã | â³ | â | Chromeã¯IDBKeyRangeã§ã®æå®ãã§ããªãã |
clear() | ãã¹ã¦ã®ãã¼ã¿ãåé¤ãããkey㯠| - | â | |
openCursor(range, direction) | rangeï¼ãªãã©ã«ã®ãã¼å¤ã¾ãã¯ãIDBKeyRangeï¼ã§æå®ãããç¯å²ã®ãã¼ã¿ãåå¾ãããdirectionã§åå¾é åºãæå®ãããï¼IDBCursorï¼ NEXT: æé NEXT_NO_DUPLICATE: æé ï¼éè¤ãªãï¼ PREV: éé PREV_NO_DUPLICATE: éé ï¼éè¤ãªãï¼ |
â³ | â³ | rangeã«ã¤ãã¦ãChromeã¯IDBKeyRangeã§ã®æå®ãã§ããªããéã«Firefoxã§ã¯ããªãã©ã«ã®ãã¼å¤ã§ã®æå®ãã§ããªãã |
createIndex(name, keyPath, unique) | keyPathã§æå®ããããããã£ã対象ã¨ããã¤ã³ããã¯ã¹ãä½æãããuniqueã§ä¸ææ§ãæå®ããã | â | â | |
index(name) | ã¤ã³ããã¯ã¹ãåå¾ããã | â | â | |
deleteIndex(indexName) | ã¤ã³ããã¯ã¹ãåé¤ããã | â | â |
IDBIndex
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
name | ã¤ã³ããã¯ã¹å | â | â | |
storeName | ã¤ã³ããã¯ã¹ã®å¯¾è±¡ã¨ãããªãã¸ã§ã¯ãã¹ãã¢å | â | â | |
keyPath | ã¤ã³ããã¯ã¹ã®å¯¾è±¡ã¨ããããããã£å | â | â | |
unique | ä¸æã§ããã | â | â | |
get(key) | keyï¼ãªãã©ã«ã®ãã¼å¤ã¾ãã¯ãIDBKeyRangeï¼ã®ãã¼ã¿ãåå¾ãããè¤æ°ããå ´åã¯ãæåã®1件ãè¿ãã | â³ | â³ | ObjectStoreã®ååã®ã¡ã½ããã¨åæ§ãFirefoxã®å ´åãã¤ã³ããã¯ã¹çµç±ã®åå¾çµæã¯ãã¼ã¨ãªãã |
getKey(key) | getã¨åæ§ã ããåå¾å¯¾è±¡ããã¼ã¨ãªãã | â³ | â | |
openCursor(range, direction) | rangeï¼ãªãã©ã«ã®ãã¼å¤ã¾ãã¯ãIDBKeyRangeï¼ã§æå®ãããç¯å²ã®ãã¼ã¿ãåå¾ãããdirectionã§åå¾é åºãæå®ãããï¼IDBCursorï¼ NEXT: æé NEXT_NO_DUPLICATE: æé ï¼éè¤ãªãï¼ PREV: éé PREV_NO_DUPLICATE: éé ï¼éè¤ãªãï¼ |
â³ | â³ | ObjectStoreã®ååã®ã¡ã½ããã¨åæ§ãFirefoxã®å ´åãã¤ã³ããã¯ã¹çµç±ã®åå¾çµæã¯ãã¼ã¨ãªãã |
openKeyCursor(range, direction) | openCursorã¨åæ§ã ããåå¾å¯¾è±¡ããã¼ã¨ãªãã | â³ | â³ |
IDBCursor
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
direction | èµ°æ»æ¹å NEXT: æé NEXT_NO_DUPLICATE: æé ï¼éè¤ãªãï¼ PREV: éé PREV_NO_DUPLICATE: éé ï¼éè¤ãªãï¼ |
â | â | |
key | ã«ã¼ã½ã«ãéãã¨ãã«ä½¿ç¨ãããã¼ | â | â | |
value | ã«ã¼ã½ã«ã®ç¾ãã¸ã·ã§ã³ã®ãã¼ã¿ | â | â³ | Firefoxã®å ´åãã¤ã³ããã¯ã¹çµç±ã§ã¯ããã¼ã¨ãªãã |
continue(key) | ã«ã¼ã½ã«ã®ç¾ãã¸ã·ã§ã³ã次ã®èµ°æ»æ¹åã¸é²ãããã¤ãã³ããåçºçããã«ã¼ã½ã«ã®ç¾ãã¸ã·ã§ã³ãæ´æ°ããããkeyï¼ãªãã©ã«ã®ãã¼å¤ã¾ãã¯ãIDBKeyRangeï¼ãæå®ããå ´åã該å½ãããã¼ã¾ã§ã«ã¼ã½ã«ãé²ããã | â³ | â³ | ChromeãFirefoxã¨ãã«keyã®æå®ã¯åãä»ããªãã |
delete() | ã«ã¼ã½ã«ã®ç¾ãã¸ã·ã§ã³ã®ãã¼ã¿ãåé¤ããã | â | â | |
update(value) | ã«ã¼ã½ã«ã®ç¾ãã¸ã·ã§ã³ã®ãã¼ã¿ãvalueã§æ´æ°ããã | - | â |
IDBTransaction
ã¡ã½ããã»ãããã㣠| 説æ | ![]() |
![]() |
ã³ã¡ã³ã |
---|---|---|---|---|
mode | ãã©ã³ã¶ã¯ã·ã§ã³ã®ç¨®é¡ READ_ONLY: èªè¾¼å°ç¨ READ_WRITE: æ¸è¾¼å¯è½ VERSION_CHANGE: ãã¼ã¸ã§ã³æ´æ° |
â | â | 以åãã£ããSNAPSHOT_READã¯ãªããªãã¾ããã |
db | æ¥ç¶ãã¦ãããã¼ã¿ãã¼ã¹ã | â | â | |
objectStore(name) | ãã©ã³ã¶ã¯ã·ã§ã³ã®å¯¾è±¡ã¨ãªããªãã¸ã§ã¯ãã¹ãã¢ã®ä¸ããnameã§æå®ããããªãã¸ã§ã¯ãã¹ãã¢ãåå¾ããã | â | â | |
abort() | ãã©ã³ã¶ã¯ã·ã§ã³ãä¸æãããã¼ã«ããã¯ããã | â | â | |
onabort | ãã©ã³ã¶ã¯ã·ã§ã³ä¸ææã®ã³ã¼ã«ãã㯠| â | â | |
oncomplete | ãã©ã³ã¶ã¯ã·ã§ã³å®äºæã®ã³ã¼ã«ãã㯠| â | â | |
ontimeout | ã¿ã¤ã ã¢ã¦ãæã®ã³ã¼ã«ãã㯠| - | - |
4. ãããã«
indexDB ã¯ãã¾ã ã¾ã å®è£
éä¸ã§ãããã¼ã¸ã§ã³ãå¤ããã°ããã®ã¾ã¾ã®ã³ã¼ãã§ã¯åããªããªãå¯è½æ§ãããªãé«ãã®ã§ãæ¬æ ¼çãªã¢ããªãä½ããããã«ãªãã«ã¯ãããå°ãæéããããã§ããããããã§ãæ¯éã試ãã¦ã¿ããã¨ããæ¹ã¯ãæ¬ã¨ã³ããªã¼ãåèã«ãã¦é ããã°å¹¸ãã§ãããã¡ãããï¼èªç§°ï¼html5-developers-jp indexedDBæ
å½ã¨ãã¦ã¯ãä»å¾ãã¡ã³ããã³ã¹ãã¦ããããã¨æãã¾ãã®ã§ããææãã質åçããã°ã³ã¡ã³ãã§ãMLã§ããã¤ãã¿ã¼ã§ããæ°è»½ã«ã©ããï¼
ã¾ã ã¾ã æ¸ããã¨ãããããããã¾ããï¼æå
ã®ãµã³ãã«ã³ã¼ãããªãã¡ã¯ã¿ãªã³ã°ãã¦å
¬éããªãã¨ãããªãã§ããâ¦ï¼ãã¾ãã¯ãã®ãããã§ã
@komasshu ããã®ãã¦ããAjax indexedDB ã触ã£ã¦ã¿ããåããã¦ã©ãã
*1:origin ⦠ãããã³ã«ããã¡ã¤ã³ããã¼ããããªããWebãµã¤ããæã示ãåºæã®æ å ±ãURLã¨ã¯ä¼¼ã¦éãªããã®ã
*2:structured clone ⦠ãªãã¸ã§ã¯ããããé¢æ°ã¨å¾ªç°åç §ãªã©ãæé¤ãããã®ãåç´ãªãªãã©ã«ãDateãObjectãArrayãå«ãã