// 데이터베이스 열기
let db;
const request = indexedDB.open('MyDatabase', 1);
request.onsuccess = function(event) {
db = event.target.result;
console.log('Database opened successfully');
// 트랜잭션 생성
const transaction = db.transaction(['users'], 'readonly');
const objectStore = transaction.objectStore('users');
// 커서 생성
const cursorRequest = objectStore.openCursor();
// 역순으로 이동하는 커서 생성
const prevCursorRequest = objectStore.openCursor(null, 'prev')
// 'next' | 'nextunique' | 'prev' | 'prevunique'
// 커서 성공 시
cursorRequest.onsuccess = function(event) {
const cursor = event.target.result;
if (cursor) {
// 현재 커서 위치의 데이터 처리
const user = cursor.value;
console.log('User:', user);
// 현재 커서의 데이터 업데이트
if (user.name === 'John Doe') {
user.age = 31;
const updateRequest = cursor.update(user);
updateRequest.onsuccess = function() {
console.log('User updated:', user);
}
}
// 다음 데이터로 이동
cursor.continue();
} else {
console.log('No more users');
}
};
// 커서 요청 실패 시
cursorRequest.onerror = function(event) {
console.error('Cursor request error:', event.target.error);
};
};
request.onerror = function(event) {
console.error('Database error:', event.target.error);
};
// 데이터베이스 열기
let db;
const request = indexedDB.open('MyDatabase', 1);
request.onsuccess = function(event) {
db = event.target.result;
console.log('Database opened successfully');
// 트랜잭션 생성
const transaction = db.transaction(['users'], 'readonly');
const objectStore = transaction.objectStore('users');
// 커서 생성
const cursorRequest = objectStore.openCursor();
// 역순으로 이동하는 커서 생성
const prevCursorRequest = objectStore.openCursor(null, 'prev')
// 'next' | 'nextunique' | 'prev' | 'prevunique'
// 커서 성공 시
cursorRequest.onsuccess = function(event) {
const cursor = event.target.result;
if (cursor) {
// 현재 커서 위치의 데이터 처리
const user = cursor.value;
console.log('User:', user);
// 현재 커서의 데이터 업데이트
if (user.name === 'John Doe') {
user.age = 31;
const updateRequest = cursor.update(user);
updateRequest.onsuccess = function() {
console.log('User updated:', user);
}
}
// 다음 데이터로 이동
cursor.continue();
} else {
console.log('No more users');
}
};
// 커서 요청 실패 시
cursorRequest.onerror = function(event) {
console.error('Cursor request error:', event.target.error);
};
};
request.onerror = function(event) {
console.error('Database error:', event.target.error);
};
// 데이터베이스 열기
let db;
const request = indexedDB.open('MyDatabase', 1);
request.onsuccess = function(event) {
db = event.target.result;
console.log('Database opened successfully');
// 트랜잭션 생성
const transaction = db.transaction(['users'], 'readonly');
const objectStore = transaction.objectStore('users');
// 커서 생성
const cursorRequest = objectStore.openCursor();
// 역순으로 이동하는 커서 생성
const prevCursorRequest = objectStore.openCursor(null, 'prev')
// 'next' | 'nextunique' | 'prev' | 'prevunique'
// 커서 성공 시
cursorRequest.onsuccess = function(event) {
const cursor = event.target.result;
if (cursor) {
// 현재 커서 위치의 데이터 처리
const user = cursor.value;
console.log('User:', user);
// 현재 커서의 데이터 업데이트
if (user.name === 'John Doe') {
user.age = 31;
const updateRequest = cursor.update(user);
updateRequest.onsuccess = function() {
console.log('User updated:', user);
}
}
// 다음 데이터로 이동
cursor.continue();
} else {
console.log('No more users');
}
};
// 커서 요청 실패 시
cursorRequest.onerror = function(event) {
console.error('Cursor request error:', event.target.error);
};
};
request.onerror = function(event) {
console.error('Database error:', event.target.error);
};