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);
                                                  }
                                            )

                                        설명

                                        • 미투데이 가입자 정보를 가져옴

                                        URL

                                        응답 XML 구조

                                        <!ELEMENT person (id, openid, nickname, face, description, homepage, location, me2dayHome, rssDaily, inviteBy, friendsCount, pinMeCount, updated, totalPosts, postIcons)>
                                        <!ELEMENT location (name, timezone)>
                                        <!ELEMENT postIcons (postIcon)+>
                                        <!ELEMENT postIcon (iconIndex, iconType, url, description, default)>

                                        • create_post
                                          • 글 작성
                                          • URL
                                          • 파라메터
                                            • post[body]
                                            • post[tags]
                                            • post[icon]
                                            • receive_xms
                                            • icon_url
                                            • callback_url
                                            • content_type
                                            • longitude
                                            • latitude
                                            • location
                                            • attachment
                                            • close_comment
                                        • get_latests
                                          • 최근 글 가져오기
                                        • get_posts
                                          • 글 가져오기
                                        • create_comment
                                          • 댓글 작성
                                        • delete_comment
                                          • 댓글 삭제
                                        • get_comments
                                          • 댓글 가져오기
                                        • track_comments
                                          • 최근 작성 댓글 가져오기
                                        • get_person
                                          • 회원 정보 가져오기
                                        • get_friends
                                          • 친구목록 가져오기
                                        • get_settings
                                          • 개인 설정 가져오기
                                        • get_tags
                                          • 태그와 태그를 포함하는 글 가져오기
                                        • noop
                                          • 사용자인증 테스트 혹은 서버 동작상태 검사
                                        • get_friendship_requests
                                          • 친구 신청내역 가져오기
                                        • accept_friendship_request
                                          • 친구신청 수락

                                         

                                        참고 : me2API 사용설명서

                                        me2API 오류가 발생하면 HTTP 상태코드와 응답 본문으로 에러 확인 가능하다.

                                        • 401 Unauthenticated
                                          • 인증되지 못한 경우
                                        • 403 Forbidden
                                          • 제공하지 않는 데이터임
                                        • 500 Internal Server Error
                                          • 요청 처리시 발생한 오류
                                          • XML 메시지 예
                                            • <error>
                                                <code>1004</code>
                                                <message>파라미터가 올바르지 않습니다.</message>
                                                <description>지정한 사용자를 찾을 수 없습니다.</description>
                                              </error>
                                        • 301 Moved Permanently
                                          • me2API 요청 URL이 변경 되었음
                                        • 200 OK
                                          • 정상 처리
                                          • 정상인 경우 응답 본문은 요청 종류에 따라 다름.

                                        참고 : me2API 문서

                                        'Resources > Web' 카테고리의 다른 글

                                        [HTML5] localStorage와 sessionStorage 그리고 클라이언트 DB  (0) 2010.02.17
                                        [me2API] get_person  (0) 2010.02.09
                                        me2API 메소드 리스트  (0) 2010.02.09
                                        [링크] HTML5의 모든것  (0) 2010.02.03
                                        [링크] 웹 개발자 리소스  (0) 2010.02.03
                                        Google I/O 2009 키노트 :: HTML5  (0) 2010.02.02
                                        Apache CouchDB e-Book  (0) 2010.01.22

                                        'Resources > Web' 카테고리의 다른 글

                                        [me2API] get_person  (0) 2010.02.09
                                        me2API 메소드 리스트  (0) 2010.02.09
                                        me2API 오류 코드  (0) 2010.02.08
                                        [링크] 웹 개발자 리소스  (0) 2010.02.03
                                        Google I/O 2009 키노트 :: HTML5  (0) 2010.02.02
                                        Apache CouchDB e-Book  (0) 2010.01.22
                                        Apache CouchDB  (0) 2010.01.22

                                        + Recent posts