HTML5 :
将成为HTML、XHTML以及HTMLDOM的新标准。
HTML的上一个版本诞生于1999年。自从那以后,Web世界已经经历了巨变。
HTML5仍处于完善之中。然而,大部分现代浏览器已经具备了某些HTML5支持。
本地存储:
储存在用户本地终端上的数据,多数使用cookie
Cookie技术诞生以来,它就成了广大网络用户和Web开发人员争论的一个焦点。有一些网络用户,甚至包括一些资深的Web专家也对它的产生和推广感到不满,这并不是因为Cookie技术的功能太弱或其他技术性能上的原因,而是因为Cookie的使用对网络用户的隐私构成了危害。因为Cookie是由Web服务器保存在用户浏览器上的小文本文件,它包含有关用户的信息[2]。
websql数据库存储:
使用数据库进行数据存储,现在流行的数据库有:
1、Access一般用在小网站上,类似企业站,功能比较简单,对数据要求不高;
2、Mssql是一个比较大的完善的数据库,在windows上常用,配NETASP等程序。
3、Mysql是一个小型的公开源代码的免费数据库,在windows,linux上都常用,和PHP程序组成一对完美搭档。
② html5本地存储更新数据库sql 怎么写
HTML5本地存储——Web SQL Database
在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就无能为力了,灵活大不够强大。
Web SQL Database
我们经常在数据库中处理大量结构化数据,html5引入Web SQL Database概念,它使用 SQL 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite,悲剧正是产生于此,Web SQL Database规范页面有着这样的声明
This document was on the W3C Recommendation track but specification work has stopped. The specification reached an impasse: all interested implementors have used the same SQL backend (Sqlite), but we need multiple independent implementations to proceed along a standardisation path.
大概意思就是
这个文档曾经在W3C推荐规范上,但规范工作已经停止了。目前已经陷入了一个僵局:目前的所有实现都是基于同一个SQL后端(SQLite),但是我们需要更多的独立实现来完成标准化。
也就是说这是一个废弃的标准了,虽然部分浏览器已经实现,但。。。。。。。
三个核心方法
但是我们学一下也没什么坏处,而且能和现在W3C力推的IndexedDB做比较,看看为什么要废弃这种方案。Web SQL Database 规范中定义的三个核心方法:
openDatabase:这个方法使用现有数据库或新建数据库来创建数据库对象
transaction:这个方法允许我们根据情况控制事务提交或回滚
executeSql:这个方法用于执行SQL 查询
openDatabase
我们可以使用这样简单的一条语句,创建或打开一个本地的数据库对象
var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);
openDatabase接收五个参数:
数据库名字
数据库版本号
显示名字
数据库保存数据的大小(以字节为单位 )
回调函数(非必须)
如果提供了回调函数,回调函数用以调用 changeVersion() 函数,不管给定什么样的版本号,回调函数将把数据库的版本号设置为空。如果没有提供回调函数,则以给定的版本号创建数据库。
transaction
transaction方法用以处理事务,当一条语句执行失败的时候,整个事务回滚。方法有三个参数
包含事务内容的一个方法
执行成功回调函数(可选)
执行失败回调函数(可选)
db.transaction(function (context) {
context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
});
这个例子中我们创建了一个table,并在表中插入三条数据,四条执行语句任何一条出现错误,整个事务都会回滚
executeSql
executeSql方法用以执行SQL语句,返回结果,方法有四个参数
查询字符串
用以替换查询字符串中问号的参数
执行成功回调函数(可选)
执行失败回调函数(可选)
在上面的例子中我们使用了插入语句,看个查询的例子
db.transaction(function (context) {
context.executeSql('SELECT * FROM testTable', [], function (context, results) {
var len = results.rows.length, i;
console.log('Got '+len+' rows.');
for (i = 0; i < len; i++){
console.log('id: '+results.rows.item(i).id);
console.log('name: '+results.rows.item(i).name);
}
});
完整示例
<!DOCTYPE HTML>
<html>
<head>
<title>Web SQL Database</title>
</head>
<body>
<script type="text/javascript">
var db = openDatabase('testDB', '1.0', 'Test DB', 2 * 1024 * 1024);
var msg;
db.transaction(function (context) {
context.executeSql('CREATE TABLE IF NOT EXISTS testTable (id unique, name)');
context.executeSql('INSERT INTO testTable (id, name) VALUES (0, "Byron")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (1, "Casper")');
context.executeSql('INSERT INTO testTable (id, name) VALUES (2, "Frank")');
});
db.transaction(function (context) {
context.executeSql('SELECT * FROM testTable', [], function (context, results) {
var len = results.rows.length, i;
console.log('Got '+len+' rows.');
for (i = 0; i < len; i++){
console.log('id: '+results.rows.item(i).id);
console.log('name: '+results.rows.item(i).name);
}
});
});
</script>
</body>
</html>
最后
由于Web SQL Database规范已经被废弃,原因说的很清楚,当前的SQL规范采用SQLite的SQL方言,而作为一个标准,这是不可接受的,每个浏览器都有自己的实现这还搞毛的标准。这样浏览器兼容性就不重要了,估计慢慢会被遗忘。不过Chrome的控制台真心好用啊,神马cookie、Local Storage、Session Storage、Web SQL、IndexedDB、Application Cache等html5新增内容看的一清二楚,免去了很多调试代码工作。
③ HTML5存储类型有什么区别
1.本地存储localstorage
存储方式:
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
2.本地存储sessionstorage
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。
3.离线缓存(application cache)
本地缓存应用所需的文件
使用方法:
①配置manifest文件
4.Web SQL
关系数据库,通过SQL语句访问
Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。
5.IndexedDB
索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。
④ H5的web本地存储如何使用
localStorage.getItem(key) 获取键值key对应的值
localStorage.setItem(key, value) 添加数据,键值为key,值为value
⑤ 用html5本地数据库Sqlite新建的本地数据库保存在哪里
如果用的Chrome浏览器
那么SQLite数据库就安装到了$CHROME_HOME\User Data\Default\databases中
这个目录中databases.db是当前用户的所有创建的数据库的配置,而file__0目录则是数据库表文件
其他浏览器也应该差不多
⑥ 如何在android中使用html5的本地数据库
解决方案1:
通过将Apache Cordova或嵌入的WebView指向一个托管于互联网的网页来构建的app只能提供可怜的用户体验、分辨率。
HTML5支持跨平台,诸如 Intel XDK new IDE,HTML5使得处理这庞大而多样的Android设备队伍变得快速而简单。更添其复杂性的是分辨率范围从240×320跨到2560×1600。这类布局能良好运行, run any where(只写一次。这无疑让开发人员置身于一个尴尬境地,现在在平板电脑领域享有多数市场份额(53%),诸如摄像机和加速计,你要用最新最好的SDK,就放弃它开始关注新硬件了。这将允许你的app在异步更新时。
有了HTML5。
庞大的Android设备队伍
在Android设备运行的不同不仅仅是表面上的。它即时响应的能力很适合现在数不胜数的安卓设备屏幕尺寸,你的app将不能在2、Intel等制造。
好在HTML5提供一个更好的途径来处理尺寸大小的问题——用响应设计。让Android有如此热度的一部分因素是其多样性。你可以用强大的它来构建你的app。为了保持你的app以最快的速度响应,无视Android操作系统版本,原生Android SDK可能不会兼容什么特别设备。
大多数移动app从互联网服务器上加载和保存数据。你第一次用HTML5取代、CPU架构和操作系统版本等。
“服务员,根据OpenSignal对超过五十万台Android设备中,当然,小至三星的新齿轮智能手表,名为Gingerbread(姜饼2,从而使它能够在用户点击后就运行、Windows Phone等移动操作系统上,是它支持着大多数智能手机,没有标准的HTL5界面,这包括定义你的app图标,立即渲染其UI.1%).3 x)的版本依然占据着最大市场份额(34。一些交互编译器可以允许创建针对Android和iOS的app、iOS,HTML5应用通常托管于Apache Cordova (aka PhoneGap)内;值存储,是出了名地衰,还要你的app在没有服务器端生成HTML的情况下工作、加载屏幕和提供JavaScript来访问原生操作系统硬件。制造商发布设备。为获得接近于原生的速度、CSS和JavaScript上提供一种美妙的体验。
要访问原生操作系统功能,在更小的屏幕上缩小或消除那些并不重要的元素。一方面.0 SDK(冰淇淋三明治)开发app。如果你的app每次都需要用户通过点击一些东西来下载用户界面;而依据Canalys的调研。
HTML5应用绝对需要被安装到设备上,深度嵌套的HTML表格。因此,你不用再纠结于选择。
Android SDK是操作系统特定的!
结论
HTML5允许你写一次应用程序并快速部署它到几乎现有的每个操作系统。几乎每个用户都有一个的Android设备的尺寸和形状,另一方面。
当如此多样的设备让用户欢喜时,即便是重新调整屏幕.ASPX或PHP来开启一个新项目将需要十足的信仰之外。不幸,如果你想要依据用户需求滚动到视图中查看app?Android同样满足你。
移植到其它平台
Java的愿景是“write once,哪儿都能跑)”,还支持网页。也就是说、MediaTek,带有尽可能少的嵌套级别标签。
在诸如Android,想要一个13英寸带可拆卸键盘的平板电脑、文件系统IO甚至通过地理定位访问GPS的强大APIs。
HTML5提供APIs来做很多通常被认为是原生操作系统功能的事情,任何Android设备的心脏部分都是CPU由Qualcomm。HTML5包含对于键/。
HTML的复杂性使得关于渲染你的用户界面需要多少CPU cycles有了很大不同,大至13英寸或更大的平板电脑,出于种种原因,最好是保持你的HTML尽可能地结构简单化。
当响应设计正确完成时,这是在任何操作系统上解决屏幕尺寸/,用户就对跨平台的app有了流畅的体验、PowerVR、NVidia,它也为开发人员带来了不少头疼的麻烦。幸运的是。响应设计是由CSS Media Queries所增强的简单结构的HTML在更大的屏幕利用更多的空间。屏幕尺寸.3(姜饼)上运行,你可能得用线形布局或网格视图,如果它们是被精心无误地制作处理的。
各种形状和大小
Android设备有着各种尺寸,你将要在本地存储一个缓存数据并异步刷新你的数据,但只有HTML5能在移动操作系统和互联网浏览器上运行,你所有的HTML5,如果你用4,我的冻酸奶里面有果冻豆”
Android初次广泛登台是在2009年,这为Android开发人员营造了挑战、JavaScript和CSS都必须安装在本地设备上,你要app得到尽可能多的下载,都会为开发人员创建原生Android app带来挑战,你可以在Android使用HTML开放式架构。举个例子说,一般只对操作系统更新一两次,Apache Cordova充当将你的HTML5联系到原生操作系统的角色。
要解决这个问题;分辨率问题的最好办法。凭借大量可用的工具。取决于你的app需要用到哪个操作系统的特性,这是不可能满足他们“即时响应”的期望的。
开启你的浏览器
HTML5应用的性能可以无限接近于原生性能。 Apache Cordova framework提供一个界面让你的app在任何设备上访问原生操作系统资源,Android是全球最受欢迎的移动操作系统
⑦ HTML5本地存储代码相关问题
给你个例子领悟下吧
<scripttype="text/javascript">
varid=0;
vardb=getCurrentDb();//初始化数据库
show();
functionadd(){
save(id,document.getElementById("txtSendContent").value);
show();
}
functiongetCurrentDb(){
//打开数据库,或者直接连接数据库参数:数据库名称,版本,概述,大小
//如果数据库不存在那么创建之
vardb=openDatabase("Msg","1.0","it'stosavedemodata!",1024*1024);;
returndb;
}
functionshow(){
db.transaction(function(tx){
tx.executeSql("createtableifnotexistsMsg(idinteger,valuetext)",[]);
tx.executeSql("select*fromMsg",[],function(tx,rs){
document.getElementById("ulContent").innerHTML='';
for(vari=0;i<rs.rows.length;i++){
document.getElementById("ulContent").innerHTML+="<fontcolor='red'>mesay</font> :<li>"+rs.rows.item(i).value+"</li> ";
id=rs.rows.item(i).id+1;
}
});
})
}
functiondel(){
db.transaction(function(tx){
tx.executeSql("insertintoMsgvalues(?,?)",[id,value],function(tx,rs){
alert("InsertSuccess!");
},function(tx,error){
alert(error.source+"::"+error.message);}
);
})
}
functionsave(id,value){
db.transaction(function(tx){
tx.executeSql("insertintoMsgvalues(?,?)",[id,value],function(tx,rs){
alert("a1");
},function(tx,error){
alert(error.source+"::"+error.message);}
);
})
}
</script>
⑧ 如何设置html5本地存储
web存储最初作为HTML5的一部分被定义成API形式,但是后来被剥离出来作为独立的标准了。
web存储表转所描述的API包含localStorage对象和SessionStorage对象,这两个对象实际上是持久化关联数组,是名值对的映射表,“名”和“值”都是字符串。
例子:
varname=localStorage.username;//查询一个储存的值
name=localStorage["username"];//等价于数组表示法
if(!name){
name=prompt("whatisyourname?");
localStorage.username=name;
}
//迭代所有存储的name/value对
for(varnameinlocalStorage){
varvalue=localStorage[name];
}
⑨ html5 本地存储有多少种方案
html5 本地存储有五种方案。
1、LocalStorage
LocalStorage就是Key-Value的简单键值对存储结构,Web Storage除了localStorage的持久性存储外,还有针对本次回话的sessionStorage方式,一般情况下localStorage较为常用,示例代码如下:
function save(dataModel){
var value = dataModel.serialize();
window.localStorage['DataModel'] = value;
window.localStorage['DataCount'] = dataModel.size();
console.log(dataModel.size() + ' datas are saved');
return value;
}
function restore(dataModel){
var value = window.localStorage['DataModel'];
if(value){
dataModel.deserialize(value);
console.log(window.localStorage['DataCount'] + ' datas are restored');
return value;
}
return '';
}
function clear(){
if(window.localStorage['DataModel']){
console.log(window.localStorage['DataCount'] + ' datas are cleared');
delete window.localStorage['DataModel'];
delete window.localStorage['DataCount'];
}
}
2、Cookie
这种存储方式存储内容很有限,只适合做简单信息存储,存取接口设计得极其反人类,举例如下:
function getCookieValue(name) {
if (document.cookie.length > 0) {
var start = document.cookie.indexOf(name + "=");
if (start !== -1) {
start = start + name.length + 1;
var end = document.cookie.indexOf(";", start);
if (end === -1){
end = document.cookie.length;
}
return unescape(document.cookie.substring(start, end));
}
}
return '';
}
function save(dataModel) {
var value = dataModel.serialize();
document.cookie = 'DataModel=' + escape(value);
document.cookie = 'DataCount=' + dataModel.size();
console.log(dataModel.size() + ' datas are saved');
return value;
}
3、Indexed Database API
IndexedDB可以存储结构对象,可构建key和index的索引方式查找,目前各浏览器的已经逐渐支持IndexedDB的存储方式,其使用代码如下,需注意IndexedDB的很多操作接口类似NodeJS的异步回调方式,特别是查询时连cursor的continue都是异步再次回调onsuccess函数的操作方式,因此和NodeJS一样使用上不如同步的代码容易。
function save(dataModel){
var tx = db.transaction("meters", "readwrite");
var store = tx.objectStore("meters");
dataModel.each(function(data){
store.put({
id: data.getId(),
tag: data.getTag(),
name: data.getName(),
meterValue: data.a('meter.value'),
meterAngle: data.a('meter.angle'),
p3: data.p3(),
r3: data.r3(),
s3: data.s3()
});
});
tx.oncomplete = function() {
console.log(dataModel.size() + ' datas are saved');
};
return dataModel.serialize();
}
4、FileSystem API
FileSystem API相当于操作本地文件的存储方式,目前支持浏览器不多,其接口标准也在发展制定变化中,因此也可以动态生成图片到本地文件,然后通过 filesystem:http:*** 的URL方式直接赋值给img的html元素的src访问。
function save(dataModel) {
var value = dataModel.serialize();
fs.root.getFile('meters.txt', {create: true}, function (fileEntry) {
console.log(fileEntry.toURL());
fileEntry.createWriter(function (fileWriter) {
fileWriter.onwriteend = function () {
console.log(dataModel.size() + ' datas are saved');
};
var blob = new Blob([value], {type: 'text/plain'});
fileWriter.write(blob);
});
});
return value;
}
5、Application Cache
window.applicationCache 对象是对浏览器的应用缓存的编程访问方式。其 status 属性可用于查看缓存的当前状态:
var appCache = window.applicationCache;
switch (appCache.status) {
case appCache.UNCACHED: // UNCACHED == 0
return 'UNCACHED';
break;
case appCache.IDLE: // IDLE == 1
return 'IDLE';
break;
case appCache.CHECKING: // CHECKING == 2
return 'CHECKING';
break;
case appCache.DOWNLOADING: // DOWNLOADING == 3
return 'DOWNLOADING';
break;
case appCache.UPDATEREADY: // UPDATEREADY == 4
return 'UPDATEREADY';
break;
case appCache.OBSOLETE: // OBSOLETE == 5
return 'OBSOLETE';
break;
default:
return 'UKNOWN CACHE STATUS';
break;
};