티스토리 뷰

웹개발/DataBase

IndexedDB 활용!

야쿠 yaku 2015.09.07 15:15

IndexedDB



데이터 읽어오기

var transaction = db.transaction(["test"], "readonly");
var objectStore = transaction.objectStore("test");

//x is some value
var ob = objectStore.get(x);

ob.onsuccess = function(e) {

}


db.transaction(["test"], "readonly").objectStore("test").get(X).onsuccess = function(e) {}

더 많은 값으로 자세하기 읽어오기

var transaction = db.transaction(["test"], "readonly");
var objectStore = transaction.objectStore("test");

var cursor = objectStore.openCursor();

cursor.onsuccess = function(e) {
    var res = e.target.result;
    if(res) {
        console.log("Key", res.key);
        console.dir("Data", res.value);
        res.continue();
    }
}

function getPeople(e) {

    var s = "";

    db.transaction(["people"], "readonly").objectStore("people").openCursor().onsuccess = function(e) {
        var cursor = e.target.result;
        if(cursor) {
            s += "<h2>Key "+cursor.key+"</h2><p>";
            for(var field in cursor.value) {
                s+= field+"="+cursor.value[field]+"<br/>";
            }
            s+="</p>";
            cursor.continue();
        }
        document.querySelector("#status2").innerHTML = s;
    }
}


var transaction = db.transaction(["people"],"readonly");
var store = transaction.objectStore("people");
var index = store.index("name");

//name is some value
var request = index.get(name);


데이터의 추가!

- add 메서드 사용

var person = {
    name:name,
    email:email,
    created:new Date()
}

//Perform the add
var request = store.add(person);


데이터의 업데이트

- Put 메서드 사용 ( 정의된 속소 ID 추가 )

var person = {
    name:name,
    email:email,
    created:new Date(),
    id:someId
}

//Perform the update
var request = store.put(person);


데이서의  삭제하기

var t = db.transaction(["people"], "readwrite");
var request = t.objectStore("people").delete(thisId);

인덱스 db 지원 여부 체크하기

$(document).ready(function() {

    if(!("indexedDB" in window)) {
        alert("IndexedDB support required for this demo!");
        return;
    }

    var $noteDetail = $("#noteDetail");
    var $noteForm = $("#noteForm");

    var openRequest = window.indexedDB.open("nettuts_notes_1",1);

    openRequest.onerror = function(e) {
        console.log("Error opening db");
        console.dir(e);
    };

    openRequest.onupgradeneeded = function(e) {

        var thisDb = e.target.result;
        var objectStore;

        //Create Note OS
        if(!thisDb.objectStoreNames.contains("note")) {
            console.log("I need to make the note objectstore");
            objectStore = thisDb.createObjectStore("note", { keyPath: "id", autoIncrement:true });
        }

    };

    openRequest.onsuccess = function(e) {
        db = e.target.result;

        db.onerror = function(event) {
          // Generic error handler for all errors targeted at this database's
          // requests!
          alert("Database error: " + event.target.errorCode);
          console.dir(event.target);
        };

        displayNotes();

    };


저작자 표시
신고

'웹개발 > DataBase' 카테고리의 다른 글

몽고 데이터베이스 공부  (0) 2015.12.15
angularJS 를 활용한 indexedDB 데이터처리하기  (0) 2015.09.08
IndexedDB 활용!  (0) 2015.09.07
mysql Query log 남기기  (0) 2015.06.21
MYSQL CSV 로 데이터 반환하기  (0) 2015.01.09
MYSQL / FULLTEXT 검색  (0) 2014.12.24
댓글
댓글쓰기 폼