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(2881064151);

通过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的表,之后获取名字与得分存入表中:

复制代码

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){});

SQLLite 可以通过SQL语言来访问的文件型SQL数据库的更多相关文章

  1. [SQL]SQL语言入门级教材_SQL数据操作基础(二)

    SQL数据操作基础(初级) netnova 于 -- :: 加贴在 数据库探讨: 为了建立交互站点,你需要使用数据库来存储来自访问者的信息.例如,你要建立一个职业介绍服务的站点,你就需要存储诸如个人简 ...

  2. SQL语言的组成

    在正式学习SQL语言之前,首先让我们对SQL语言有一个基本认识,介绍一下SQL语言的 组成: 1.一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义. 2.一个SQL表由行集构成, ...

  3. SQL语言 之 SQL概述

    SQL(Structured Query Language)语言,自1987年6月被国际标准化组织采纳为国际标准,SQL语言成为关系数据库的标准语言. SQL语言是关系数据库操作的基础语言,将数据查询 ...

  4. 数据库系统学习(八)-SQL语言与数据库完整性和安全性

    第八讲 SQL语言与数据库完整性 重难点 数据库完整性的概念 关系数据库 防止和避免数据库中不合理数据的出现 输入错误,操作失误,程序处理错误等 完整性约束条件的一般形式 对O操作集合,当出现A情况时 ...

  5. (一)Sql学习之sql语言的组成

    SQL语言是具有强大查询功能的数据库结构化语言.由以下几部分组成: 1.数据定义类SQL(DDL--DATE DEFINITION LANGUAGE) CREATE-创建数据库及其对象(表,索引,视图 ...

  6. 学习笔记:oracle学习三:SQL语言基础之sql语言简介、用户模式

    目录 1.sql语言简介 1.1 sql语言特点 1.2 sql语言分类 1.3 sql语言的编写规则 2.用户模式 2.1 模式与模式对象 2.2 实例模式scott 本系列是作为学习笔记,用于记录 ...

  7. SQL语言基础-基本概念

    SQL:IBM的圣约瑟(SanJose),SEQUEL 2(也就是现在的SQL语言) 1979.Oracle首先提出提供了商用的SQL语言 1986.10美国ANSI采用SQL作为关系数据库管理系统的 ...

  8. [SQL]SQL语言入门级教材_SQL语言快速入门(五)

    SQL语言快速入门(一) SQL是英文Structured Query Language的缩写,意思为结构化查询语言. SQL语言的主要功能就是同各种数据库建立联系,进行沟通.按照ANSI(美国国家标 ...

  9. 使用sql访问EXECL文件

    --使用sql语句打开访问EXECL文件 --SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDat ...

随机推荐

  1. PHP+七牛云存储上传图片代码片段

    2014年11月14日 16:37:51 第一段代码是上传单个图片的,第二个是上传多个图片的 //上传到七牛 //单个文件 //formname: 表单名字; pre: 图片Url中显示的图片名字(也 ...

  2. Android开发数据库三层应用-DataSnap

    Android开发数据库三层应用-DataSnap http://www.2ccc.com/news/Html/?1517.html 核心提示:我觉得Delphi最强大的的功能之一就是开发数据库三层应 ...

  3. Java for LeetCode 152 Maximum Product Subarray

    Find the contiguous subarray within an array (containing at least one number) which has the largest ...

  4. codeforces A. Candy Bags 解题报告

    题目链接:http://codeforces.com/contest/334/problem/A 题意:有n个人,将1-n袋(第 i  袋共有 i  颗糖果,1<= i  <=n)所有的糖 ...

  5. CodeForces - 405C

    Unusual Product Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Sub ...

  6. 彻底禁止QQ更新

    彻底禁止QQ自动更新 彻底禁止QQ自动更新 相信大部分朋友用的QQ都不是腾讯提供的官方原版吧,我本人就用的某精简版本,只保留了自己会用到的个别功能,既省内存,启动也超快,界面更是清爽无比. 但是,这种 ...

  7. mysql 建表语句

    修改id为自动增长: alter table book b_ISBN int(11) auto_increment;   自动增长要加的:auto_increment 基本的sql语句: 选择:sel ...

  8. PHP单引号和双引号的区别

    单引号和双引号的区别 .双引号 里的东西 输入的时候能判断是否 包含 变量,如果包含 变量 就一起输出 .单引号里的就不一样,不判断是否有变量,就全部当成 字符串 输出 .单引号解析的时间比双引号快 ...

  9. java web开发问题集合

    前台和后台的交流到底是借助什么?servlet?xml? 我们能感觉到用servlet,但是我们是如何使用servlet的?不是现在web.xml部署后,才能触发吗?所以其实我们是本质是借助XML文件 ...

  10. 调整Excel的打印线