티스토리 뷰
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
예제 : http://whatdo.net/html5/example/#5
API : http://dev.w3.org/html5/webdatabase/#sqltransaction
다른사이트 : http://html5doctor.com/introducing-web-sql-databases/
webkit 계 브라우저만 현재 지원합니다. (크롬, 사파리 등) - 2010.06.21
브라우저 내장 DB(sqlite) 를 이용하여 데이타를 저장할수 있는 공간이 있습니다.
브라우저 설정마다 다른데 safari의 경우 1~500MB 까지 설정할수 있게 되어 있네요.
보통 5MB정도라고 합니다.
거기다 transaction 까지 지원되고 sql 문을 그대로 쓸수 있으니 간단한 localStorage보다 사용빈도는 낮겠지만 중요한 때에 필요할듯 보입니다.
거기다 굳이 윈어플처럼 따로 설치할 필요없어 간단한 DB형 플그램정도는 이제 javascript + 브라우저로 끝내도 될듯싶네요.ㅎ
----------------- 사용한 javascript + jquery 입니다.--------------------------
var db=null;
var DB={
init:function(){
try{
if(window.openDatabase){
db = openDatabase("test", "1.0", "HTML5 Database example", 2*1021*1024);//2MB
if(!db){
$(".error").append("Fail to open DB<br />");
}
}
}catch(e){
$(".error").append(e.message+"<br />");
}
},
err:function(e){
$(".error").append(e.message+"<br />");
},
sqlEx:function(t){
var sql = "create table if not exists test ("
+ "idx integer primary key,"
+ "subject varchar(255), "
+ "content text, "
+ "reg_date datetime"
+ ")";
t.executeSql(
sql,
[],
function(st, rst){},
function(st, err){
DB.err(err);
}
);
},
sqlDump:function(t){
var sql = "insert into test (idx, subject, content, reg_date) values (?, ?, ?, DATETIME('NOW'))";
for(var i=0; i<20; i++){
t.executeSql(
sql,
[i, i+" 제목", i+" 내용"],
function(st, rst){},
function(st, err){
DB.err(err);
}
);
}
},
allDel:function(){
db.transaction(
function(t){
t.executeSql(
"delete from test",
[],
function(st, rst){
DB.select(rst);
},
function(st, err){
$(".error").append(err.message+"<br />");
}
);
}, this.err
);
},
del:function(e, v){
if(!v) return;
db.transaction(
function(t){
t.executeSql(
"delete from test where idx=?",
[v],
function(st, rst){
$(e.target.parentNode.parentNode).slideUp();
},
function(st, err){
$(".error").append(err.message+"<br />");
}
);
}, this.err
);
},
update:function(v){
var s = $("#c_"+v+">li:nth-child(2)").text();
var c = $("#c_"+v+">li::nth-child(3)").text();
db.transaction(
function(t){
t.executeSql(
"update test set subject=?, content=? where idx=?",
[s, c, v],
function(st, rst){
$("#c_"+v).css({'border':'1px solid #F14104'});
var ss = setTimeout(function(){$("#c_"+v).css({'border':'none', 'border-bottom':'1px solid #ccc'});clearTimeout(ss);}, 1000);
},
function(st, err){
$(".error").append(err.message+"<br />");
}
);
}, this.err
);
},
insert:function(){
var s = $("#subject").text();
var c = $("#content").text();
if(s && c && s!='제목' && c!='내용'){
db.transaction(
function(t){
t.executeSql(
"select max(idx) as idx from test", ////->safari는 auto_increment가 적용되는 반면, chrome은 적용이 안되네..
[],
function(st, rst){
var idx = rst.rows.item(0).idx+1 || 0;
st.executeSql(
"insert into test (idx, subject, content, reg_date) values (?, ?, ?, datetime('now'))",
[idx, s, c],
function(st, rst){
$("#result").empty();
$("#subject").text('제목');
$("#content").text('내용');
DB.load();
},
function(st, err){
$(".error").append(err.message+"<br />");
}
);
},
function(st, err){
$(".error").append(err.message+"<br />");
}
);
}, this.err
);
}else{
$(".error").append("제목과 내용을 새로 모두 입력해주세요<br />");
}
},
select:function(rst){
if(rst.rows.length<=0 || !rst){
$("#result").empty();
return;
}
var cnt = rst.rows.length;
for(var i=0; i<cnt; i++){
var idx=rst.rows.item(i).idx;
var subject = rst.rows.item(i).subject;
var content = rst.rows.item(i).content;
var reg_date = rst.rows.item(i).reg_date;
var _html =' <ul id="c_'+idx+'">'
+ ' <li>'+idx+'</li>'
+ ' <li contenteditable="true" onblur="DB.update('+idx+')">'+subject+'</li>'
+ ' <li contenteditable="true" onblur="DB.update('+idx+')">'+content+'</li>'
+ ' <li>'+reg_date+' '
+' <a href="javascript:void(0);" onclick="DB.del(event, '+idx+');" title="삭제">[X]</a></li>'
+ '</ul>';
$("#result").append(_html);
}
},
load:function(){
var sql="select * from test order by idx desc";
db.transaction(
function(t){
t.executeSql(
sql,
[],
function(st, rst){
DB.select(rst);
},
function(st, err){
DB.sqlEx(st);
DB.sqlDump(st);
st.executeSql(sql, [], function(st, rst){DB.select(rst);});
}
);
}, this.err
);
}
};
'컴터 > html5' 카테고리의 다른 글
[html5 동영상] 인코딩 유틸 (ogg theora, H.264) (3) | 2010.06.24 |
---|---|
[html5 sqlite] chrome의 괜찮은 sqlite db 관리툴 (0) | 2010.06.23 |
[html5-예제] web storage 중 local storage (0) | 2010.06.16 |
[html5-예제] 메신저같은 알림창 (notifications) (0) | 2010.06.15 |
- TAG
- chrome, html5, localstorage, Safari, SQLite, transaction, web database, webkit
댓글
공지사항
최근에 올라온 글
- Total
- 1,769,611
- Today
- 3
- Yesterday
- 16
링크
- Adobe AIR / www.AS3.kr / Actio…
- Adobe AIR Devpia.
- Beyond Tomorrow
- Blog of Shigeru Nakagaki. Let\…
- CSS3 . Info
- Code Weblog
- CodeIgniter 한국사용자포럼 BETA
- ECONOBLOG
- FlexComponent-플렉스 네이버 카페
- Guru's Blog
- Hooney.net - CSS Reference Sit…
- Korean Healthlog
- Raymond.CC Blog
- [Air]AIR_IN_ACTION
- [CSS]후니넷
- [Flex] css 스킨
- [JavaFx] 한글화
- [basic4ppc]괜찮은 사이트
- [flex2책저자]with okgosu (-..-)a
- [flex] stylesheet
- [flex] 예제 많은곳-EBook관련
- [flex]ungsung' study
- [html5-canvas]『 zeroone 』blog
- [html5-iphone]xguru.net
- [html5]korea html5 group
- [html5]sencha touch demos - fr…
- [iPhone]아이군의 블로그
- [iphone] 토리의 놀이터
- [iphone]LambertPark
- [iphone]safari 레퍼런스
- [iphone]피의복수
- [jQuery Plugin] 포토갤러리
- [jQuery] -- jQuery
- [jQuery] 1.1.2 API Browser
- [jQuery] IBM 사이트 설명
- [jQuery] 예제 많음
- [javascript]JKwang's Programs
- [red5]
- [그래픽js] 끝내줌.ㅋ
- [김프]무료 이미지 관리툴 -비교대상 포토샵
- [무료캡쳐프로그램] jing Project - swf …
- [무료호스팅]1.5Gb 줌
- [서프라이즈] - 대문
- [실버라이트] msdn
- [실버라이트]ONESTONE
- [실버라이트]ZZANGMYON BLOG♡
- [실버라이트]사진속에 혼을 담는 개발자
- [실버라이트]유령회사 공도소프트
- [실버라이트]이과장의 프로그래밍이야기
- [오픈소스검색엔진]루씬 한글분석기 오픈소스 프로젝트
- [해킨토시]x86osx.com
- adobe 예제 사이트
- d-|-b First Of May
- lovesera.com: ART of VIRTUE
- rollin96님의 노트-air/flex Tip
- w3school.com
- 굿네이버스
- 꿀뷰, 바닥, 술집의 개발자
- 나물이네-자취생들의 먹거리 해결..ㅋ
- 낙장불입 인생막장
- 내 눈으로 본 한국, 한국인....
- 딴동네-Air/Flex 영상 강좌
- 레인 에디터
- 류종택의 프로그래밍 강의실
- 리아 코리아
- 무료 호스팅 해줌 - 디지문
- 버터백통의 Action Script 레시피
- 살아 숨 쉬는 웹 - 블루비
- 색깔있는 진보 칼라TV
- 시작하세요! iphone3
- 아이디어 상품
- 아폴로케이션[Adobe AIR]
- 엑셀 도움말
- 영원의 헤아림-검쉰-Flex
- 오픈소스 FLV 플레이어
- 울나라 Ajax Library
- 웹사이트 방문자 통계
- 웹카페-css 잘나왔뜸
- 웹캠으로하는 멋진 게임
- 웹프로그래머의 홈페이지 정보 블로그
- 윤훈남의 액션스크립트3.0
- 조인시 위키
- 체리필터의 인생이야기
- 충청투데이 알짜 뉴스
- 칸과칸사이
- 태우\'s log - web 2.0 and beyond
- 파비콘 제네레이터
- 파인애플 밴드
- 팬소년이야기
- 한국의 대표 진보언론 민중의소리 - 전체 기사
- 훈스닷컴
- Feeding.kr의 일용할양식
- [javascript]기억하고 싶은 것들
- XML-RPC-metaWeblog 설명
- [IT웹툰]미닉스의 작은 이야기들
- outsider 개발자
- 애매한 발음 알아볼때
- [android]Photographer. Android…
- [android]mSurf Lab 안드로이드 개발 정보…
- [android]안드로이드 개발 정보
- [android]안드로이드 개발하는놈
- [android]안드로이드 프로그래밍 정복
- [android]참 쉽습니까?
- [android]커니의 안드로이드 이야기 - Andro…
- [android]회색의 구글 안드로이드 개발
- 장군블로그 [진심을 담는 마크업. 웹 표준. 웹 접근성…
- 백남중
- NARADESIGN:BLOG
- [php.js] php함수 js로 옮겨놓은 곳
- javascript 이론적으로 설명잘해놓은곳
- JavaScript Garden
- Angularjs 등 javascript 설명
- node.js
- 유용한 코드 많은 곳...코드쪼가리?
- HTML5 Demos- 최고!!!
- Firejune - The Web is still ch…
- 글읽어주는 사이트
- [publisher] Clearboth
- [nodejs]Hello World!!
- angularjs2 - 강추
- 모든 브라우저에서 동작하는 canvas
- Beautiful Jquery Plugin MopTip…
- 김진형교수의 SW정책 단상
- Comments for 미스타표, 즐기며 배우며.
- [외국개발자]곰같은블로그
- [opencv]다크 프로그래머
- [YouTube]日本人の知らない日本語
- 영어학습 자료실 EnglishCube - 추천사이트, …
- がんばれ! 日本語
- [youtube]serina hwang
- 하라마~~~
- O HOUSE : 라이프 매거진
- 아름다운 하우스 : 네이버 블로그
- [인테리어]김반장의 이중생활
- [리모델링]Pastel design & Archi te…
- [리모델링]대전 아파트 인테리어 전문 업체! 엘림하우스
- [리모델링]가람홈스토리
- :: Back to the Mac
- Swift 언어 개발문서
- [swift]Seorenn SIGSEGV
- Swift Lab를 위한 댓글
- 콩닥맘의 차니스토리 : 네이버 블로그
- 헬렌의 테이스팅 메뉴 The Tasting Menu
- lovesera: ART of VIRTUE-정진호
- [ionic] saltfactory's blog
- PhoneGap API Documentation
- 김변의 법인등기 : 네이버 블로그
- 면어의 얼렁뚱땅 캘리그라피
- 푸른지성과 카즈미, 그리고 코타의 행복한 세상!
- AnimationKING
- AnimationKING : 네이버 블로그
- POND X P.B.Y
- 도쿄 동경 베쯔니 블로그
- whatdo.net-티티호스팅
TAG
- 대전역
- 자양동
- html5예제
- 충청투데이
- html5
- 봄
- AIR
- 쌍둥이빌딩
- 안드로이드
- 티눈
- 공개
- 사마귀
- Ajax
- 아이폰
- 자전거
- 가오지구
- php
- flex
- 고려극장
- Alert.show
- 넥서스원
- 해킨토시
- jQuery
- ogv
- localstorage
- 겨울준비
- exif 정보
- 골목
- 맥북에어 13
- 재개발