




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章HTML5Web存儲目錄Web存儲WebSQLDatabase索引數(shù)據(jù)庫認識Web存儲兩種Web存儲方式會話存儲(SessionStorage):它的訪問性上只限于當前頁面,并且頁面關閉后會消失,通過sessionStorage進行訪問。本地存儲(LocalStorage):沒有時間限制的數(shù)據(jù)存儲,通過localStorage進行訪問。WebStorage和Cookie的異同網絡傳輸:Cookie會隨著請求發(fā)送到服務器端,而WebStorage數(shù)據(jù)存在客戶端,不會與服務器發(fā)交互。存儲限制:Cookie存儲的數(shù)據(jù)大小限制為4KB,而WebStorage能夠提供更大容量的存儲設計,根據(jù)瀏覽器不同,可以存儲5MB左右的數(shù)據(jù)。數(shù)據(jù)接口:WebStorage提供豐富的數(shù)據(jù)接口,開發(fā)人員可以方便的訪問數(shù)據(jù),而Cookie則需要開發(fā)人員自行開發(fā)接口。存儲空間:WebStorage每個域(包括子域)有獨立的存儲空間,各個存儲空間是完全獨立的,因此不會造成數(shù)據(jù)混亂。Web存儲API函數(shù)名功能length存儲的鍵/值對的數(shù)量key(n)返回存儲的第N個鍵。getItem(key)返回鍵key對應的值。如果值不存在,則返回空null。注意,返回的值是一個字符串。如果你存儲的值是整數(shù)或布爾型,你需要類型轉換。setItem(key,value)把值插入到key鍵中removeItem(key)移除某個鍵對應的值(包含鍵本身)。如果鍵不存在,此方法什么也不做。clear清空存儲的鍵/值數(shù)據(jù)WebSQLDatabaseWebSQLDatabase允許應用程序通過一個異步JavaScript接口訪問SQLLite數(shù)據(jù)庫,HTML5的WebSQLDatabaseAPI有三個核心的方法
函數(shù)功能openDatabase()打開數(shù)據(jù)庫或者創(chuàng)建新的數(shù)據(jù)庫transaction()控制事務的提交和回滾executeSql()執(zhí)行SQL語句WebSQLDatabase打開數(shù)據(jù)庫:使用openDatabase()方法打開數(shù)據(jù)庫,如果該數(shù)據(jù)庫不存在,則創(chuàng)建新的數(shù)據(jù)庫。該方法包含五個參數(shù):數(shù)據(jù)庫名、版本號、描述、數(shù)據(jù)庫大小、回調函數(shù),其中回調函數(shù)可以省略。通過事務執(zhí)行SQL:transaction()方法接收一個方法作為參數(shù),在該方法中執(zhí)行SQL腳本vardb=openDatabase('student','1.0',’StudentInfo',5*1024);vardb=openDatabase('student','1.0','StudentInfo',5*1024);db.transaction(function(tx){ tx.executeSql('CREATETABLEstudentinfo(idINTEGER,nameTEXT)'); tx.executeSql('INSERTINTOstudentinfo(id,name)Values(1,"zhangsan")');});索引數(shù)據(jù)庫WebSQLDatabase已被較新的規(guī)范——索引數(shù)據(jù)庫所取代,目前瀏覽器正在逐步實現(xiàn)對索引數(shù)據(jù)庫的支持。索引數(shù)據(jù)庫以window.indexDB作為入口,但各個瀏覽器增加了前綴,獲取方式一般采用。采用command->request->result的調用方式,比如打開數(shù)據(jù)庫,返回一個request,在request的result中得到返回的數(shù)據(jù)庫引用。varindexedDB=window.indexedDB||window.webkitIndexedDB||window.mozIndexedDB||window.msIndexedDB;索引數(shù)據(jù)庫打開數(shù)據(jù)庫onupgradeneeded這個回調函數(shù):當數(shù)據(jù)庫發(fā)生改變時調用。比如,當某個數(shù)據(jù)庫不存在需要創(chuàng)建,或者數(shù)據(jù)庫更改時。一般在該回調函數(shù)內創(chuàng)建objectStore,相當于數(shù)據(jù)庫中的一張表。varpeopleData=[{name:"JohnDow",email:"john@"},{name:"DonDow",email:"don@"}];vardb;varrequest=indexedDB.open("PeopleDB",1);request.onsuccess=function(evt){db=request.result;};request.onerror=function(evt){console.log("IndexedDBerror:"+evt.target.errorCode);};request.onupgradeneeded=function(evt){varobjectStore=evt.currentTarget.result.createObjectStore("people",{keyPath:"id",autoIncrement:true});objectStore.createIndex("name","name",{unique:false});objectStore.createIndex("email","email",{unique:true});for(iinpeopleData){objectStore.add(peopleData[i]);}};索引數(shù)據(jù)庫插入數(shù)據(jù)//界面控件數(shù)據(jù)獲取varname=document.getElementById('txtName').valuevaremail=document.getElementById('txtEmail').value;//事務vartransaction=db.transaction("people","readwrite");//對象庫varobjectStore=transaction.objectStore("people");//添加對象
varrequest=objectStore.add({name:name,email:email});request.onsuccess=function(event){
};索引數(shù)據(jù)庫瀏覽數(shù)據(jù)//輸出區(qū)域varoutput=document.getElementById('printOutput');output.textContent="";//事務vartransaction=db.transaction("people","readwrite");varobjectStore=transaction.objectStore("people");//打開數(shù)據(jù)表varrequest=objectStore.openCursor();request.onsuccess=function(event){varcursor=event.target.result;if(cursor){output.textContent+="id:"+cursor.key+"is"+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 青島遠洋船員職業(yè)學院《食品生物技術概論》2023-2024學年第二學期期末試卷
- 貴州文化旅游職業(yè)學院《全媒體節(jié)目制作與包裝實驗》2023-2024學年第二學期期末試卷
- 2025屆湖北省十一校高三上學期第一次聯(lián)考(一模)歷史試卷
- 梧州醫(yī)學高等專科學?!恫枞~機械學》2023-2024學年第二學期期末試卷
- 南陽醫(yī)學高等??茖W校《國土空間規(guī)劃導論》2023-2024學年第二學期期末試卷
- 蘭州工業(yè)學院《軌道交通通信技術》2023-2024學年第二學期期末試卷
- 桂林生命與健康職業(yè)技術學院《分子生物學實驗A》2023-2024學年第二學期期末試卷
- 重慶文化藝術職業(yè)學院《信息設計》2023-2024學年第二學期期末試卷
- 武漢鐵路職業(yè)技術學院《中國古代文學史(四)》2023-2024學年第二學期期末試卷
- 湖北工業(yè)大學《工程計量與計價(路橋)》2023-2024學年第二學期期末試卷
- 教師課堂教學技能課件
- 2022年濟南工程職業(yè)技術學院單招綜合素質考試筆試試題及答案解析
- 員工調整薪酬面談表
- 輔警報名登記表
- 初中數(shù)學競賽試題匯編
- 外研版英語五年級下冊第一單元全部試題
- 培養(yǎng)小學生課外閱讀興趣課題研究方案
- 部編版四年級語文下冊課程綱要
- 【課件】第二單元第三節(jié)漢族民歌課件-2021-2022學年高中音樂人音版(2019)必修音樂鑒賞
- 華文出版社三年級下冊書法教案
- GB_T 30789.3-2014 色漆和清漆 涂層老化的評價 缺陷的數(shù)量和大小以及外觀均勻變化程度的標識 第3部分:生銹等級的評定
評論
0/150
提交評論