HTML5新增核心工具——本地存储

除了Canvas元素外,HMTL5另外一个新增的非常重要的功能是可以在客户端本地存储数据库的Web Storage。本文就介绍下Web Storage以及SQLLite操作。

Web Storage分为两类:

- sessionStorage:数据保存在session 对象中(临时)

- localStorage:数据保存在本地硬件设备中(永久)

sessionStorage:

保存数据的两种方法:

  sessionStorage.setItem(‘key‘,‘val‘);
  sessionStorage.key = ‘val‘;

读取数据的两种方法:

  sessionStorage.getItem(‘key‘);
  var temp = sessionStorage.key;

清除数据的方法:

  sessionStorage.removeItem(‘key‘)

注意:键名即‘key‘是不能重复的,键名页也不能删除。

示例:

  sessionStorage.world=‘hello world‘;
  sessionStorage.setItem(‘kitty‘,‘hello kitty‘);

在javascript中运行上述代码,用浏览器打开该页面后按F12呼出控制台,选择Resources标签页下的Session Storage选项,可以看到上述两条数据已经被存入了:

当执行清除后:

  sessionStorage.removeItem(‘kitty‘);

相应键名的数据被删除:

现在sessionStorage中插入如下数据:

获取session中的数据条数(sessionStorage.length),并在控制台打印出来:

  console.log(sessionStorage.length);

获取指定索引下标对应的键名(sessionStorage.key(index)):

  console.log(sessionStorage.key(1));

清除所有数据:

  sessionStorage.clear();

通过window对象对storage添加监听事件:

window.addEventListener(‘storage’,function(event){ });

event的属性值:

- event.key:storage中被修改的键值

- event.oldValue:被修改前的值

- event.newValue:被修改后的值

- event.url:storage 中值得页面URL地址

localStorage与sessionStorage使用方法一致,只需要变下名字

区别在于localSorage是永久保存,而sessionStorage会在浏览器关闭时自动清除。sessionStorage可以用来暂时保存登陆后的用户名等信息。

实用的本地数据库:

HTML5 内置了两种数据库一种是SQLLite 可以通过SQL语言来访问的文件型SQL数据库,另外一种是indexedDB的noSQL类型的数据库。

这里主要介绍下SQLLite

创建访问数据库对象:

var db=openDatabase("gameDB","1.0","游戏数据库",1024*1024);

参数:1.数据库名,如果存在就打开,如果不存在就创建一个 2.版本号,默认1.0 3.数据库描述 4.数据库大小,单位字节,1024*1024即1M,一般1M到2M就够用了。

访问数据库:

db.transaction(function(tx){
        tx.executeSql("SQL语句",[],function(tx,rs){},function(tx,err){});
    });

参数:1.SQL语句 2.SQL参数组 3.执行SQL成功时的回调函数 4.执行SQL失败时的回调函数。

其中执行成功回调函数中的rs代表结果集,其中的rows属性保存了每条数据。

用之前做的游戏举个实例:

    var username=$("username").value;
    var db=openDatabase("gameDB","1.0","游戏数据库",1024*1024);
    db.transaction(function(tx){
        tx.executeSql("create table t_defenders (username varchar(20),score int)",[],function(tx,rs){},function(tx,err){});
    });
    db.transaction(function(tx){
        tx.executeSql("insert into t_defenders values(?,?)",[username,killNum*100],function(tx,rs){},function(ts,err){});
    });

作用为当游戏结束时,在本地数据库中创建名为t_defenders的表,之后获取名字与得分存入表中:

点击确定后F12打开控制台,在Resources下面的Web SQL中可以看到存入的数据:

接下来查看数据:

 var db=openDatabase("gameDB","1.0","游戏数据库",1024*1024);
    db.transaction(function(tx){
        tx.executeSql("select * from t_defenders order by score desc limit 5",[],function(tx,rs){
            var row = rs.rows;
            $("score-table").innerHTML = "";
            var str = "<tr><th>名次</th><th>玩家姓名</th><th>分数</th></tr>";
            for(var i = 0;i<row.length; i++){
                str += "<tr><td>"+(i+1)+"</td><td>"+row.item(i).username+"</td><td>"+row.item(i).score+"</td></tr>";
            }
            $("score-table").innerHTML += str;
        },function(ts,err){});

大致作用为通过rs.rows获得表中的数据,动态的加入到我们希望显示的地方:

本地数据库的好处在于一些像游戏成绩等简单的数据并不像通过node.js连接MySQL并添加数据那么麻烦,仅仅用HTML5中的本地数据库就可以很方便的对这些数据进行操作。

感谢您的浏览,希望能对您有所帮助。

HTML5新增核心工具——本地存储,布布扣,bubuko.com

时间: 2024-10-25 16:29:29

HTML5新增核心工具——本地存储的相关文章

HTML5新增核心工具——canvas

Canvas元素称得上是HTML5的核心所在,它是一个依靠JavaScript绘制华丽图像的元素. Canvas由一个可绘制地区HTML代码中的属性定义决定高度和宽度,JavaScript代码可以访问该地区,通过一套完整的绘图功能类似于其他通用二维的API,从而生成动态的图形. Canvas可以在浏览器中绘制出十分华丽的图形,比如: 当然这应该算比较高级的用法了,本菜也不会=.= Canvas一个很大的作用就是制作游戏,本文通过博主之前做的一个小游戏来从零介绍Canvas的用法,先展示下吧: O

HTML5移动开发之路(19)——HTML5 Local Storage(本地存储)

本文为 兄弟连IT教育 机构官方 HTML5培训 教程,主要介绍:HTML5移动开发之路(19)--HTML5 Local Storage(本地存储) 一.浏览器存储的发展历程 本地存储解决方案很多,比如Flash SharedObject.Google Gears.Cookie.DOM Storage.User Data.window.name.Silverlight.Open Database等. 借用网上的一张图来看下目前主流的本地存储方案: Cookie: 在web中得到广泛应用,但局限

html5本地存储之indexedDb

对于以下需求: 离线存储读取数据 允许用户对数据进行增删改操作 数据存储在本地,不依赖后端 数据支持索引查询 我们可以考虑使用html5新特性的本地存储,主要有以下几种: Web Sql(IE,FF都不支持,http://www.w3.org/TR/webdatabase/) IndexedDB Local Storage(轻松存储简单的数据结构,如果存储复杂的较麻烦) Session Storage(同Localstorage) Cookies(有限制) Application Cache(随

HTML5 学习笔记(三)——本地存储

目录 一.HTML4客户端存储 1.1.提交表单发送到服务器的信息 1.2.客户端本地存储概要 二.localStorage 2.1.添加 2.2.取值 2.3.修改 2.4.删除 2.5.跨页面与跨域 2.6.存储位置与SQLite 2.7.用途.练习与兼容性 三.sessionStorage 3.1.sessionStorage使用 3.2.Web本地存储事件监听 3.3.cookie.sessionStorage.localStorage比较 四.Web SQL Database 4.1.

HTML5系列三(多媒体播放、本地存储、本地数据库、离线应用)

各浏览器对编码格式的支持情况 audio和video元素的属性介绍 1.src:媒体数据的URL地址 <video src="pr6.mp4"></video> <video src="pr6.mp4" width="320" height="240"></video> 2.autoplay:是否自动播放 <video src="pr6.mp4" aut

HTML5本地存储——Web SQL Database

在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就无能为力了,灵活大不够强大. Web SQL Database 我们经常在数据库中处理大量结构化数据,html5引入Web SQL Database概念,它使用 SQL 来操纵客户端数据库的 API,这些 API 是异步的,规范中使用的方言是SQLlite,悲剧正是产生于此,Web SQL Data

Html5 web本地存储

Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似HTML4的cookie,但可实现功能要比cookie强大的多,cookie大小被限制在4KB,Web Storage官方建议为每个网站5MB. Web Storage又分为两种: sessionStorage localStorage 从字面意思就可以很清楚的看出来,sessionStorage将数据保存在session中,浏览器关闭也就没了:而localStorage则一直将数据保存在客户端本地: 不管

HTML5 localStorage本地存储实际应用举例

HTML5 localStorage本地存储实际应用举例 by zhangxinxu from http://www.zhangxinxu.com本文地址:http://www.zhangxinxu.com/wordpress/?p=1952 一.引言 HTML5虽未来到其鼎盛时期,但这并不妨碍我们在实际项目中渐进使用HTML5的一些特性.就我所做的项目而言,应用的HTML5相关特性有:data-自定义属性.placeholder.以及email类型input文本框.上周新上线的会员中心,自己又

利用HTML5开发Android(7)---HTML5本地存储之Database Storage

在上一篇<HTML5本地存储之Web Storage篇>中,简单介绍了如何利用localStorage实现本地存储:实际上,除了sessionStorage和localStorage外,HTML5还支持通过本地数据库进行本地数据存储,HTML5采用的是"SQLite"这种文件型数据库,该数据库多集中在嵌入式设备上,熟悉IOS/Android开发的同学,应该对SQLite数据库比较熟悉. HTML5中的数据库操作比较简单,主要有如下两个函数: 1.通过openDatabase