HTML5中如何使用数据库 (html5哪里会用到数据库)

随着互联网技术的不断发展,Web应用程序的需求也日益增加。而这些Web应用程序需要与数据库进行交互,以存储用户数据、更新应用程序状态等。HTML5新增了Web数据库API,使得Web应用程序可以轻松地访问本地数据库。本文将介绍。

一、Web数据库API

Web数据库API是HTML5中新增的API之一,它提供了一个轻量级的本地数据库,供Web应用程序使用。 Web数据库API是基于SQL的,并且支持事务。它允许Web应用程序以类似于关系型数据库的方式执行查询、插入、更新和删除操作,同时还支持索引、触发器和视图等高级功能。

Web数据API由两个JavaScript对象组成:openDatabase()和Database。openDatabase()函数是用于创建或打开数据库的函数。调用该函数时,需要传入数据库的名称、版本和描述信息。

语法:

var database = openDatabase(name, version, description, size, creationCallback);

参数:

name:数据库的名称,字符串类型,必填项。

version:数据库的版本号,字符串类型,必填项。

description:数据库的描述信息,字符串类型,可选项。

size:数据库的大小,指定为字节数,可选项。

creationCallback:创建回调函数,当数据库创建完成后会调用该函数。

Database对象是代表实际数据库的对象,它包含了执行数据库操作的方法,如执行SQL语句、事务等。

二、使用Web数据库API

在使用Web数据库API之前,需要确定浏览器是否支持该API。可以使用下面的代码进行检测:

if (window.openDatabase) {

// code to create or open database

}

else {

// code to display error message

}

1.创建或打开数据库

使用openDatabase()函数创建或打开数据库。例如:

var database = openDatabase(“mydb”, “1.0”, “My Database”, 2 * 1024 * 1024);

该代码将创建一个名为“mydb”的数据库,版本为“1.0”,大小为2MB。

2.执行SQL语句

执行SQL语句是操作数据库的主要方式之一。Web数据库API支持标准的SQL语句,如SELECT、INSERT、UPDATE和DELETE。

例如,执行一个SELECT查询可以使用下面的代码:

database.transaction(function(tx) {

tx.executeSql(“SELECT * FROM mytable”, [], function(tx, results) {

// process query results here

});

});

在这个例子中,执行SELECT查询的代码包含在一个transaction()函数中。transaction()函数是执行一个事务的函数。在事务中可以执行多个SQL操作,如果任何一个SQL操作失败,整个事务将被回滚。

executeSql()方法是在事务中执行SQL语句的方法。该方法需要三个参数:SQL语句、参数数组和回调函数。SQL语句是要执行的SQL语句字符串;参数数组包含SQL语句中的任何参数;回调函数在SQL语句执行完成后调用,它接收两个参数:事务对象和查询结果。

3.处理查询结果

当执行SELECT查询完成后,需要处理查询结果。查询结果在回调函数的第二个参数“results”中返回。results对象包含了查询结果的行和列信息,可以通过其属性和方法来访问查询结果的各个部分。

例如:

if (results.rows.length > 0) {

for (var i = 0; i

var row = results.rows.item(i);

// process row data here

}

}

这段代码将遍历查询结果中的所有行,每行数据存储在一个JavaScript对象中,可以进一步处理数据。

4.插入数据

插入数据是常用的操作之一,可以使用下面的代码插入一条记录:

database.transaction(function(tx) {

tx.executeSql(“INSERT INTO mytable (name, eml) values (?, ?)”, [“John Doe”, “johndoe@example.com”]);

});

使用“?”作为占位符,实现SQL语句与参数的分离,可以有效地防止SQL注入攻击。

5.更新数据

更新数据也十分常见,使用下面的代码可以更新一条记录:

database.transaction(function(tx) {

tx.executeSql(“UPDATE mytable SET eml = ? WHERE name = ?”, [“johndoe@gml.com”, “John Doe”]);

});

同样的,也使用占位符来防止SQL注入攻击。

6.删除数据

删除记录也十分常见,使用下面的代码可以删除一条记录:

database.transaction(function(tx) {

tx.executeSql(“DELETE FROM mytable WHERE name = ?”, [“John Doe”]);

});

7.关闭数据库

在使用完毕后,需要关闭数据库。使用下面的代码可以关闭数据库:

database.close();

三、

HTML5中的Web数据库API提供了一个轻量级的本地数据库,使得Web应用程序可以轻松地访问本地数据库。它支持标准的SQL语句和事务,并且兼容大多数主流浏览器。使用Web数据库API可以实现对数据的快速访问和操作,使得开发者能够更加方便地构建Web应用程序。

相关问题拓展阅读:

如何在android中使用html5的本地数据库

依据Gartner的研究,Android是全球更受欢迎的移动操作系统,是它支持着大多数智能手机;而依据Cys的调研,现在在平板电脑领域享有多数市场份额(53%)。让Android有如此热度的一部分因素亏租橡是其多样性。几乎每个用户都有一个的Android设备的尺寸和形状,想要一个13英寸带可拆卸键盘的平板电脑?Android同样满足你。

当如此多样的设备让用户欢喜时,它也为开发人员带来了不少头疼的麻烦。屏幕尺寸、分辨率、CPU架构和操作系统版本等,都会为开发人员创建原生Android app带来挑战。幸运的是,HTML5使得处理这庞大而多样的Android设备队伍变得快速而简单。

“服务员,我的冻酸奶里面有果冻豆”

Android初次广泛登台是在2023年。制造商发布设备,一般只对操作系统更新一两次,就放弃它开始关注新硬件了。因此,根据OpenSignal对超过五十万台Android设备中,名为Gingerbread(姜饼2.3 x)的版本依然占据着更大市场份额(34.1%)。

Android SDK是操作系统特定的,这为Android开发人员营造了挑战。也就是说,如果你用4.0 SDK(冰淇淋三明治)开发app,你的app将不能在2.3(姜饼)上运行。这无疑让开发人员置身于一个尴尬境地。一方面,你要用最新更好的SDK,另一方面,你要app得到尽可能多的下载。

有了HTML5,你不用再纠结于选择。你可以用强大的它来构建你的app,无视Android操作系统版本。

庞大的Android设备队伍

在Android设备运行的不同不仅仅是表面上的,任何Android设备的心脏部分都是CPU由Qualcomm、PowerVR、NVidia、MediaTek、销旁Intel等制造。取决于你的app需要用到哪个操作系统的特性,原生Android SDK可能不会兼容什么特别设备。

HTML5提供APIs来做很多通常被认为是原生操作系统功能的事情。HTML5包含对于键/值存储、文件系统IO甚至通过地理定位访问GPS的强大APIs。

要访问原生操作系统功能,没有标准的HTL5界面。 Apache Cordova framework提供一个界面让你的app在任何设备问原生操作系统资源,诸如摄像机和加速计。

各种形状和大小

Android设备有着各种尺寸,小至三星的新齿轮智能手表,大至13英寸或更大的平板电脑。更添其复杂性的是分辨率范围从240×320跨到2560×1600。

要解决这个问题,你可能得用线形布局或网格视图。这类布局能良好运行,如果你想要依据用户需求滚动到视图中查看app。

好在HTML5提供一个更好的途径来处理尺寸大小的问题——用响应设计。响应设计是由CSS Media Queries所增强的简单结构的HTML在更大的屏幕利用更多的空间,在更小的屏幕上缩小或消除那些并不重要的元素。

当响应设计正确完成时,用户就对跨平台的app有了流畅的体验,即便是重新调整屏幕,这是在任何操作系统上解决屏幕尺寸/分辨率问题的更好办法。

移植到其它平台

Java的愿景是“write once, run any where(只写一次,哪儿都能跑)”。不幸,出于种种原因,不能实现这个梦。一些交互编译器可以允许创建针对Android和iOS的app,但只有HTML5能在移动操作系统和互联网浏览器上运行。

在诸如Android、iOS、Windows Phone等移动操作系统上,HTML5应用通常托管于Apache Cordova (aka PhoneGap)内,Apache Cordova充当将你的HTML5联系到原生操作系统的角色,这包括定义你的app图标、加载屏幕和提供JavaScript来访问原生操作系统硬件。

HTML5支持跨平台,当然,还支持网页。你之一次用HTML5取代.ASPX或PHP来开启一个新项目将需要十足的信仰之外,还要你的app在没有服务器端生成HTML的情况下工作。

开启你的浏览器

HTML5应用的性能可以无限接近于原生性能,如果它们是被精心无误地制作处理的型羡。

HTML5应用绝对需要被安装到设备上。通过将Apache Cordova或嵌入的WebView指向一个托管于互联网的网页来构建的app只能提供可怜的用户体验。如果你的app每次都需要用户通过点击一些东西来下载用户界面,这是不可能满足他们“即时响应”的期望的。为获得接近于原生的速度,你所有的HTML5、JavaScript和CSS都必须安装在本地设备上,从而使它能够在用户点击后就运行。

大多数移动app从互联网服务器上加载和保存数据。为了保持你的app以最快的速度响应,你将要在本地存储一个缓存数据并异步刷新你的数据。这将允许你的app在异步更新时,立即渲染其UI。

HTML的复杂性使得关于渲染你的用户界面需要多少CPU cycles有了很大不同,更好是保持你的HTML尽可能地结构简单化,带有尽可能少的嵌套级别标签。举个例子说,深度嵌套的HTML表格,是出了名地衰!

结论

HTML5允许你写一次应用程序并快速部署它到几乎现有的每个操作系统。它即时响应的能力很适合现在数不胜数的安卓设备屏幕尺寸。凭借大量可用的工具,诸如 Intel XDK new IDE,你可以在Android使用HTML开放式架构、CSS和JavaScript上提供一种美妙的体验。

使用映射将数据传过来在保存本地数据库。

HTML5的5种存储方式详解

引言

本篇文章主要介绍了前端HTML5几种存储方式的总结 ,主要包括本地存储localstorage,本地存储sessionstorage,离线缓存(application cache),Web SQL,IndexedDB。有兴趣的可以了解一下。

正文开始~

h5之前,存储主要是用cookies。cookies缺点有在请求头上带着数据,大小是4k之内。主Domain污染。

主要应用:购物车、客户登录

对于IE浏览器有UserData,大小是64k,只有IE浏览器支持。

目标

存储方式:

以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。

大小:

每个域名5M

支持情况:

注意:IE9 localStorage不支持本地文件,需要将项目署到服务器,才可以支持!

常用的API:

getItem //取记录

setIten//设置记录

removeItem//移除记录

key//取key所对应的值

clear//清除记录

存储的内容:

数组,图片,json,样式,脚本。。。(只要是能序列化成字符侍银信串的内容都可以存储)搏缺

HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。

本地缓存应用所需的文件

使用方法:

①配置manifest文件

页面上:

Manifest 文件:

manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

manifest 文件可分为三个部分:

①CACHE MANIFEST – 在此标题下列出的文件将在首次下载后进行缓存

②NETWORK – 在此标题下列出的文件需要与服务器的连接,且不会被缓存

③FALLBACK – 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

完整demo:

服务器上:

manifest文件需要配置正确的MIME-type,即 “text/cache-manifest”。

如Tomcat:

常用API:

核心是applicationCache对象,有个status属性,表示应用缓存的当前状态:

0(UNCACHED) : 无缓存, 即没有与页面相关的应用缓存

1(IDLE) : 闲置,即应用缓存未得到更新

2 (CHECKING) : 检查中,即正在下载描述文件并检查更新

3 (DOWNLOADING) : 下载中,即应用缓存正在下载描述文件中指定的资源

4 (UPDATEREADY) : 更新完成,所有资源都已下载完毕

5 (IDLE) : 废弃,即应用缓存的描述文件已经不存在了,因此页面无法再访问应用缓存

相关的事件:

表示应用缓存状态的改变:

checking : 在浏览器为应用缓存查找更新时触发

error : 在检查更新或下载资源期间发送错误时触发

noupdate : 在检查描述文件发现文件无变化时触发

downloading : 在开始下载应用缓存资源时触发

progress:在文件下载应用缓存的过程中持续不断地下载地触发

updateready : 在页面新的应用缓存下载完毕触发

cached : 在应用缓存完整可用时触发

Application Cache的三个优势:

① 离线浏览

② 提升页面载入速度

③ 降低服务器压力

注意事项:

1. 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)

2. 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览老轮器继续全部使用老的缓存

3. 引用manifest的html必须与manifest文件同源,在同一个域下

4. 浏览器会自动缓存引用manifest文件的HTML文件,这就导致如果改了HTML内容,也需要更新版本才能做到更新。

6. FALLBACK中的资源必须和manifest文件同源

7. 更新完版本后,必须刷新一次才会启动新版本(会出现重刷一次页面的情况),需要添加监听版本事件。

8. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问

9. 当manifest文件发生改变时,资源请求本身也会触发更新

离线缓存与传统浏览器缓存区别:

1. 离线缓存是针对整个应用,浏览器缓存是单个文件

2. 离线缓存断网了还是可以打开页面,浏览器缓存不行

3. 离线缓存可以主动通知浏览器更新资源

关系数据库,通过SQL语句访问

Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。

支持情况:

Web SQL 数据库可以在最新版的 Safari, Chrome 和 Opera 浏览器中工作。

核心方法:

①openDatabase:

这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。

②transaction:

这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。

③executeSql:

这个方法用于执行实际的 SQL 查询。

打开数据库:

执行查询操作:

插入数据: 

读取数据:

由这些操作可以看出,基本上都是用SQL语句进行数据库的相关操作,如果你会MySQL的话,这个应该比较容易用。

索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。

异步API:

在IndexedDB大部分操作并不是我们常用的调用方法,返回结果的模式,而是请求——响应的模式,比如打开数据库的操作

这样,我们打开数据库的时候,实质上返回了一个DB对象,而这个对象就在result中。由上图可以看出,除了result之外。还有几个重要的属性就是onerror、onsuccess、onupgradeneeded(我们请求打开的数据库的版本号和已经存在的数据库版本号不一致的时候调用)。这就类似于我们的ajax请求那样。我们发起了这个请求之后并不能确定它什么时候才请求成功,所以需要在回调中处理一些逻辑。

关闭与删除:

数据存储:

indexedDB中没有表的概念,而是objectStore,一个数据库中可以包含多个objectStore,objectStore是一个灵活的数据结构,可以存放多种类型数据。也就是说一个objectStore相当于一张表,里面存储的每条数据和一个键相关联。

我们可以使用每条记录中的某个指定字段作为键值(keyPath),也可以使用自动生成的递增数字作为键值(keyGenerator),也可以不指定。选择键的类型不同,objectStore可以存储的数据结构也有差异。

学习从来不是一个人的事情,要有个相互监督的伙伴,想要学习或交流前端问题的小伙伴可以私信“学习”小明获取web前端入门资料,一起学习,一起成长!

html5哪里会用到数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于html5哪里会用到数据库,HTML5中如何使用数据库,如何在android中使用html5的本地数据库,HTML5的5种存储方式详解的信息别忘了在本站进行查找喔。


数据运维技术 » HTML5中如何使用数据库 (html5哪里会用到数据库)