在HTML5之前的時(shí)代,如果需要在客戶端本地保存數(shù)據(jù),只能存儲(chǔ)在Cookie中,但是 Cookie使用過多會(huì)影響請求速度 ,所以并不適合存儲(chǔ)大量數(shù)據(jù)。
大廠網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,大廠網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為大廠千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個(gè)售后服務(wù)好的大廠做網(wǎng)站的公司定做!
而在HTML5面世后,自帶了本地存儲(chǔ)和本地?cái)?shù)據(jù)庫功能,更為便捷的管理客戶端數(shù)據(jù)。
HTML5提供了一個(gè) 基于瀏覽器端的數(shù)據(jù)庫 (WebSQL 、IndexedDB),我們可以通過JS API來在瀏覽器端創(chuàng)建一個(gè)本地?cái)?shù)據(jù)庫,而且它還支持標(biāo)準(zhǔn)的SQL來執(zhí)行CRUD操作。
如何查看本地的數(shù)據(jù)庫呢?通過各個(gè) 瀏覽器的調(diào)試工具 可以查看。
在HTML5中操作本地?cái)?shù)據(jù)庫都是通過JS API來實(shí)現(xiàn)的,很簡單,步聚如下:
1、通過 openDatabase 創(chuàng)建數(shù)據(jù)庫對(duì)象
2、通過 db.transaction 設(shè)置回調(diào)函數(shù)
3、通過 executeSql 方法執(zhí)行查詢
HTML5默認(rèn)情況下是無法連接遠(yuǎn)程數(shù)據(jù)庫的,一般都是通過API去操作數(shù)據(jù)庫。比如當(dāng)下流行的前后端完全分離,借助的就是RESTful來實(shí)現(xiàn)業(yè)務(wù)數(shù)據(jù)的CRUD操作。
怎么會(huì)問這個(gè)問題,HTML是不可能鏈接數(shù)據(jù)庫的,他是標(biāo)簽類語言,是用于構(gòu)建靜態(tài)頁面的,要想鏈接數(shù)據(jù)庫必須得支持網(wǎng)絡(luò)通信和IO的,顯然HTML并沒有支持,HTML只是用來設(shè)計(jì)頁面的。
我還以為我落伍了,h5連數(shù)據(jù)庫
TML5是什么?
HTML5是指第5代HTML(超文本標(biāo)記語言),也指用HTML5語言制作的一切數(shù)字產(chǎn)品。
網(wǎng)上的網(wǎng)頁,多數(shù)都是由HTML寫成的。
“超文本”是指頁面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素。
而“標(biāo)記”指的是這些超文本必須由包含屬性的開頭與結(jié)尾標(biāo)志來標(biāo)記。
瀏覽器通過解碼HTML,就可以把網(wǎng)頁內(nèi)容顯示出來。
下圖中就很清晰的指出了H5的涵蓋范圍:
HTML5之所以能引發(fā)如此廣泛的效應(yīng),根本在于它不再只是一種標(biāo)記語言,它為下一代互聯(lián)網(wǎng)提供了全新的框架和平臺(tái),包括提供免插件的音視頻、圖像動(dòng)畫、本體存儲(chǔ)以及更多酷炫而且重要的功能,并使這些應(yīng)用標(biāo)準(zhǔn)化和開放化,從而使互聯(lián)網(wǎng)也能夠輕松實(shí)現(xiàn)類似桌面的應(yīng)用體驗(yàn)。
HTML的全稱是超文本標(biāo)記語言,是一種標(biāo)記語言。它包括一系列標(biāo)簽,可以統(tǒng)一網(wǎng)絡(luò)上文檔的格式,將分散的互聯(lián)網(wǎng)資源連接成一個(gè)邏輯整體。HTML是由HTML命令組成的描述性文本,可以解釋文字、圖形、動(dòng)畫、聲音、表格、鏈接等。Html是一種用來描述網(wǎng)頁的語言。它被稱為超文本標(biāo)記語言,它是一種標(biāo)記語言。它包括一系列標(biāo)簽,可以統(tǒng)一網(wǎng)絡(luò)上文檔的格式,將分散的互聯(lián)網(wǎng)資源連接成一個(gè)邏輯整體。
HTML5連接數(shù)據(jù)庫分為以下幾步:
預(yù)備知識(shí):Web SQL Database,Html5環(huán)境下可以用Js執(zhí)行CRUD的Web數(shù)據(jù)庫組件。
核心方法如下:
1、openDatabase:這個(gè)方法使用現(xiàn)有數(shù)據(jù)庫或創(chuàng)建新數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫對(duì)象。
2、transaction:這個(gè)方法允許我們根據(jù)情況控制事務(wù)提交或回滾。
3、executeSql:這個(gè)方法用于執(zhí)行真實(shí)的SQL查詢。
第一步:打開連接并創(chuàng)建數(shù)據(jù)庫
var dataBase = openDatabase("student", "1.0", "student", 1024 * 1024, function () { });
if (!dataBase) {
alert("數(shù)據(jù)庫創(chuàng)建失??!");
} else {
alert("數(shù)據(jù)庫創(chuàng)建成功!");
}
第二步:創(chuàng)建數(shù)據(jù)表
this.createTable=function() {
dataBase.transaction( function(tx) {
tx.executeSql(
"create table if not exists stu (id REAL UNIQUE, name TEXT)",
[],
function(tx,result){ alert('創(chuàng)建stu表成功'); },
function(tx, error){ alert('創(chuàng)建stu表失敗:' + error.message);
});
});
}
第三步:執(zhí)行增刪改查
添加數(shù)據(jù):
this.insert = function () {
dataBase.transaction(function (tx) {
tx.executeSql(
"insert into stu (id, name) values(?, ?)",
[id, '徐明祥'],
function () { alert('添加數(shù)據(jù)成功'); },
function (tx, error) { alert('添加數(shù)據(jù)失敗: ' + error.message);
} );
});