欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作

這篇文章主要講解了“HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作”吧!

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序定制開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了猇亭免費(fèi)建站歡迎大家使用!

HTML5使用了HTTP機(jī)制的Cookie,用于在客戶端存儲結(jié)構(gòu)化數(shù)據(jù)以及克服以下缺點(diǎn)。

每個HTTP請求中都包含Cookies,從而導(dǎo)致傳輸相同的數(shù)據(jù)減緩我們的Web應(yīng)用程序。

每個HTTP請求中都包含Cookies,從而導(dǎo)致發(fā)送未加密的數(shù)據(jù)到互聯(lián)網(wǎng)上。

Cookies只能存儲有限的4KB數(shù)據(jù),不足以存儲所需的數(shù)據(jù)。這兩種存儲方式是會話存儲和本地存儲,它們將用于處理不同的情況。

幾乎所有最新版本的瀏覽器都支持HTML5存儲,包括IE瀏覽器。

會話存儲

_會話存儲_被設(shè)計為用戶使用單個事務(wù)的場景,但是同時可以在不同的窗口中執(zhí)行多個事務(wù)。

示例

如果,該網(wǎng)站使用cookie跟蹤用戶購買的機(jī)票,當(dāng)用戶在窗口中點(diǎn)擊頁面時,從一個窗口到另一個時當(dāng)前已經(jīng)購買的機(jī)票會“泄漏”,這可能導(dǎo)致用戶購買同一航班的兩張機(jī)票而沒有注意。

HTML5會話存儲屬性,此網(wǎng)站可以將數(shù)據(jù)添加到會話存儲中,用戶仍然可以在打開的持有該會話的窗口中訪問同一站點(diǎn)的任意頁面,當(dāng)關(guān)閉窗口時,會話也會丟失。

下面的代碼將會設(shè)置一個會話變量,然后訪問該變量:

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE HTML >  

< html >  

<身體>  

  <腳本類型= “ text / javascript” >   

    if(sessionStorage.hits){   

       sessionStorage.hits  = 數(shù)字(sessionStorage.hits)+1;   

    }其他{   

       sessionStorage.hits  =  1 ;   

    }   

    document.write(“總點(diǎn)擊數(shù):” + sessionStorage.hits);   

  </腳本>  

  < p >刷新頁面以增加點(diǎn)擊數(shù)。</ p >  

  < p >關(guān)閉窗口,然后再次打開并檢查結(jié)果。</ p >  

</ body >  

</ html >  

本地是

_出于性能原因,Web應(yīng)用程序可能希望在客戶端存儲百萬字節(jié)的用戶數(shù)據(jù),例如用戶撰寫的整個文檔或者是用戶的郵箱。

Cookies并不能很好的處理這種情況,因為每個請求都會傳輸。

示例

HTML5發(fā)布了localStorage屬性,可以用于訪問頁面的本地存儲區(qū)域而沒有時間限制,無論何時我們使用這個頁面的時候本地存儲都是可用的。

下面的代碼設(shè)置了一個本地存儲變量,每次訪問該頁面時都可以訪問該變量,甚至是下次打開窗口時:

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE HTML >  

< html >  

<身體>  

  <腳本類型= “ text / javascript” >   

    if(localStorage.hits){   

       localStorage.hits  = 數(shù)字(localStorage.hits)+1;   

    }其他{   

       localStorage.hits  =  1 ;   

    }   

    document.write(“總點(diǎn)擊數(shù):” + localStorage.hits);   

  </腳本>  

  < p >刷新頁面以增加點(diǎn)擊數(shù)。</ p >  

  < p >關(guān)閉窗口,然后再次打開并檢查結(jié)果。</ p >  

</ body >  

</ html >  

方便學(xué)習(xí)上述概念-請進(jìn)行在線練習(xí)。

刪除Web存儲

在本地機(jī)器上存儲敏感數(shù)據(jù)可能是危險的,可能會留下安全隱患。

_會話存儲數(shù)據(jù)_在會話終止之后將由瀏覽器立即刪除。

要清除本地存儲設(shè)置需要調(diào)用localStorage.remove('key');這個'key'就是我們想要刪除的值對應(yīng)的鍵。如果想要清除所有設(shè)置,需要調(diào)用localStorage.clear()方法。

下面的代碼會完全清除本地存儲:

XML / HTML代碼將內(nèi)容復(fù)制到文本

<!DOCTYPE HTML >  

< html >  

<身體>  

  <腳本類型= “ text / javascript” >   

    localStorage.clear();   

    //重置點(diǎn)擊數(shù)。   

    if(localStorage.hits){   

       localStorage.hits  = 數(shù)字(localStorage.hits)+1;   

    }其他{   

       localStorage.hits  =  1 ;   

    }   

    document.write(“總點(diǎn)擊數(shù):” + localStorage.hits);   

  </腳本>  

  < p >刷新頁面不會增加點(diǎn)擊計數(shù)器。</ p >  

  < p >關(guān)閉窗口,然后再次打開并檢查結(jié)果。</ p >  

</ body >  

</ html >  

Web SQL數(shù)據(jù)庫

Web SQL數(shù)據(jù)庫API并不是HTML5規(guī)范的一部分,但是它是一個獨(dú)立的規(guī)范,而是使用了SQL操作客戶端數(shù)據(jù)庫的API。核心方法下面是規(guī)范中定義的三個核心方法。也會涵蓋在本教程中:

的openDatabase:這個方法使用現(xiàn)有的數(shù)據(jù)庫或者新建的數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)庫對象的事務(wù):這個方法讓我們能夠控制一個事務(wù),以及基于這種情況執(zhí)行提交或者回滾。的ExecuteSQL:這個方法用于執(zhí)行實際的SQL查詢。開啟數(shù)據(jù)庫如果數(shù)據(jù)庫已經(jīng)存在,openDatabase方法負(fù)責(zé)開啟數(shù)據(jù)庫,如果不存在,這個方法會創(chuàng)建它。

使用以下的代碼可以創(chuàng)建并開啟一個數(shù)據(jù)庫:

JavaScript代碼將內(nèi)容復(fù)制到

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);  

上面的方法接受以下五個參數(shù):

數(shù)據(jù)庫名稱版本號描述文本數(shù)據(jù)庫大小被創(chuàng)建的最后一個也是一個第五個參數(shù),創(chuàng)建引用會在創(chuàng)建數(shù)據(jù)庫后被調(diào)用。然而,甚至沒有這個特性(功能),運(yùn)行時仍會創(chuàng)建數(shù)據(jù)庫以及正確的版本。

執(zhí)行查詢

執(zhí)行查詢需要使用database.transaction()函數(shù)。這個函數(shù)需要一個參數(shù),它是一個負(fù)責(zé)實際執(zhí)行查詢的函數(shù),如下所示:

JavaScript代碼將內(nèi)容復(fù)制到

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);   

db.transaction(函數(shù) (tx){     

   tx.executeSql('如果不存在日志則創(chuàng)建表(id unique,log)' );   

});  

上面的查詢語句會在'mydb'數(shù)據(jù)庫中創(chuàng)建一個叫做的LOGS的表。

插入操作

為了在表中創(chuàng)建合并,我們在上面的示例中加入簡單的SQL查詢,如下所示:

JavaScript代碼將內(nèi)容復(fù)制到

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);   

db.transaction(函數(shù) (tx){   

   tx.executeSql('如果不存在日志則創(chuàng)建表(id unique,log)' );   

   tx.executeSql('將日志插入(ID,日志)值(1,“ foobar”)' );   

   tx.executeSql('將日志插入(ID,日志)值(2,“ logmsg”)' );   

});  

創(chuàng)建的時還可以傳遞如下所示的動態(tài)值:

JavaScript代碼將內(nèi)容復(fù)制到

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);   

db.transaction(函數(shù) (tx){     

  tx.executeSql('如果不存在日志則創(chuàng)建表(id unique,log)' );   

  tx.executeSql('將日志插入日志   

                        (id,log)值(?,?' ),[e_id,e_log];   

});  

這里的e_id和e_log是外部變量,executeSql會映射數(shù)組參數(shù)中的每個對應(yīng)給“?”。

讀取操作

要讀取已經(jīng)存在的記錄,我們可以使用替換來捕獲結(jié)果,如下所示:

JavaScript代碼將內(nèi)容復(fù)制到

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);   

db.transaction(函數(shù) (tx){   

   tx.executeSql('如果不存在日志則創(chuàng)建表(id unique,log)' );   

   tx.executeSql('將日志插入(ID,日志)值(1,“ foobar”)' );   

   tx.executeSql('將日志插入(ID,日志)值(2,“ logmsg”)' );   

});   

db.transaction(函數(shù) (tx){   

   tx.executeSql('SELECT * FROM LOGS' ,[], 函數(shù) (tx,結(jié)果){   

   var  len = results.rows.length,i;   

   msg =  “ <p>找到的行:”  + len +  “ </ p>” ;   

   document.querySelector('#status' ).innerHTML + = msg;   

   對于 (i = 0; i <len; i ++){   

      警報(results.rows.item(i).log);   

   }   

 },為 null );   

});  

最終示例最后,然我們把這個例子放到如下所示的完整HTML5文檔中,然后嘗試在Safari瀏覽器中運(yùn)行它:

JavaScript代碼將內(nèi)容復(fù)制到

<!DOCTYPE HTML>   

<html>   

<頭>   

<script type = “ text / javascript” >   

var  db = openDatabase('mydb' ,  '1.0' ,  'Test DB' ,2 * 1024 * 1024);   

var  msg;   

db.transaction(函數(shù) (tx){   

  tx.executeSql('如果不存在日志則創(chuàng)建表(id unique,log)' );   

  tx.executeSql('將日志插入(ID,日志)值(1,“ foobar”)' );   

  tx.executeSql('將日志插入(ID,日志)值(2,“ logmsg”)' );   

  msg =  '<p>已創(chuàng)建日志消息并插入行。</ p>' ;   

  document.querySelector('#status' ).innerHTML = msg;   

});   

db.transaction(函數(shù) (tx){   

  tx.executeSql('SELECT * FROM LOGS' ,[], 函數(shù) (tx,結(jié)果){   

   var  len = results.rows.length,i;   

   msg =  “ <p>找到的行:”  + len +  “ </ p>” ;   

   document.querySelector('#status' ).innerHTML + = msg;   

   對于 (i = 0; i <len; i ++){   

     msg =  “ <p> <b>”  + results.rows.item(i).log +  “ </ b> </ p>” ;   

     document.querySelector('#status' ).innerHTML + = msg;   

   }   

 },為 null );   

});   

</ script>   

</ head>   

<身體>   

<div id = “狀態(tài)”  name = “狀態(tài)” >狀態(tài)消息</ div>   

</ body>   

</ html>  

在瀏覽器中這會生成如下所示結(jié)果:

復(fù)制代碼

代碼如下:

創(chuàng)建日志消息并插入行。</ p> <p>找到的行:2 </ p> <p> foobar </ p> <p> logmsg

感謝各位的閱讀,以上就是“HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

網(wǎng)站標(biāo)題:HTML5的存儲功能和網(wǎng)絡(luò)SQL怎么操作
網(wǎng)址分享:http://chinadenli.net/article0/jsiioo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、Google、響應(yīng)式網(wǎng)站、做網(wǎng)站、微信公眾號、網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
黑人粗大一区二区三区| 成年人免费看国产视频| 亚洲专区中文字幕在线| 亚洲一区二区三区av高清| 亚洲国产成人久久99精品| 五月天综合网五月天综合网| 在线观看中文字幕91| 日本在线视频播放91| 亚洲专区一区中文字幕| 久久99热成人网不卡| 国产成人午夜福利片片| 日本熟妇熟女久久综合| 国产一区二区三区四区中文| 亚洲国产av国产av| 国产欧洲亚洲日产一区二区| 日本加勒比在线观看一区| 中文字幕日韩无套内射| 九九热这里有精品20| 日本熟妇熟女久久综合| 日韩欧美三级中文字幕| 国产精品不卡高清在线观看| 91亚洲人人在字幕国产| 99在线视频精品免费播放| 国产又猛又大又长又粗| 区一区二区三中文字幕| 亚洲黄片在线免费小视频| 人妻内射在线二区一区| 又色又爽又黄的三级视频| 九九视频通过这里有精品| 深夜福利亚洲高清性感| 69老司机精品视频在线观看| 大伊香蕉一区二区三区| 黄片美女在线免费观看| 黄片免费播放一区二区| 午夜精品黄片在线播放| 99久久婷婷国产亚洲综合精品 | 国产色偷丝袜麻豆亚洲| 国产一区二区三区色噜噜| 亚洲美女国产精品久久| 国产又粗又硬又长又爽的剧情| 亚洲欧美日韩网友自拍|