HTML5에서는 데이터 저장 관련하여 몇가지 기능을 추가 제공한다.

  • localStorage
  • sessionStorage
  • client-side DB

localStorage

  • 웹브라우저를 종료해도 데이터가 남는다.
  • 동일한 소스(도메인, 프로토콜, 포트)로부터 데이터를 쓸 수 있다.
  • 웹 애플리케이션에 유용
  • 예)
    • 키/값 저장
      • localStorage.setItem( ‘gilbird’, 2010);
    • 키/값 로드
      • var year = localStorage.getItem( ‘gilbird’);
    • 키/값 모두 삭제
      • localStorage.clear();

sessionStorage

  • 데이터는 윈도우 객체에 저장
  • 해당 윈도우만 인식
  • 예)
    • 위 localStorage 예에서 sessionStorage라고 바꿔 쓸 수 있음

Client-Side DB

  • 자바스크립트 DB API
  • INSERT, UPDATE, SELECT, DELETE 지원
  • 트랜젝션 지원
  • DB 접속
    • db = openDatabase( shortName, version, displayName, maxSize);
      • 사파리의 경우 maxSize를 5MB 기본 지원(용량초과시 5MB 추가됨 - 확인필요)
      • 브라우저 설정에서 로컬 DB 크기를 볼 수 있음
  • DB 생성
    • db.transaction(
          function(transaction) {
              transaction.executeSql(
                  'CREATE TABLE IF NOT EXISTS 테이블명 (컬럼_리스트);'
              );
          }
      );
  • INSERT
    • db.transaction(
          function(transaction) {
              transaction.executeSql(
                  'INSERT INTO 테이블명 (컬럼_리스트) VALUES (?);',
                  [값_리스트],
                  function() {
                        // INSERT후 실행문
                                    },
                                    transactionErrorHandler,       // SQL 실패시 실행
                                    transactionSuccessHandler  // SQL 성공시 실행
                                ); } );
                      • 에러 처리
                        • function transactionErrorHandler( transaction, error) {
                              alert( error.message + “:” + error.code);
                              return true;
                          }
                        • 리턴값
                          • true – 치명적 오류. 진행 중단
                          • false – 계속 진행
                      • SELECT
                        • db.transaction(
                              function(transaction) {
                                  transaction.executeSql(
                                      'SELECT * FROM 테이블명 WHERE 컬럼=?;',
                          •    [값_리스트],
                               function( transaction, result) {
                                     for (var i=0; i < result.rows.length; i++) {
                                         var row = result.rows.item(i);
                                         // row 처리
                                     }
                                                 },
                                                 transactionErrorHandler,       // SQL 실패시 실행
                                                 transactionSuccessHandler  // SQL 성공시 실행
                                              ); } );
                                        • DELETE
                                          • db.transaction(
                                                 function(transaction) {
                                                     transaction.executeSql('DELETE FROM 테이블명 WHERE id=?;',
                                                     [값], null, transactionErrorHandler);
                                                  }
                                            )

                                        'Web' 카테고리의 다른 글

                                        WEB-INF 란?  (0) 2010.02.23
                                        [링크] 베스트 100 자바스크립트 리소스  (0) 2010.02.22
                                        [모바일 사파리] 홈 스크린 / 풀 스크린 모드 / 시작 화면 조작하기  (0) 2010.02.18
                                        [me2API] get_person  (0) 2010.02.09
                                        me2API 메소드 리스트  (0) 2010.02.09
                                        me2API 오류 코드  (0) 2010.02.08
                                        [링크] HTML5의 모든것  (0) 2010.02.03

                                        + Recent posts