html5-localStorage本地存储和SQLLite本地数据库

2024-05-16 05:48

本文主要是介绍html5-localStorage本地存储和SQLLite本地数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

localstorage和cookie

cookie缺点:

① cookie大小限制在4k左右,不适合存业务数据

② cookie每次随HTTP事务一起发送,浪费带宽

localstorage优势:

① localstorage大小限制在500万字符左右,各个浏览器不一致

② localstorage在隐私模式下不可读取

③ localstorage本质是在读写文件,数据多的话会比较卡(firefox会一次性将数据导入内存,想想就觉得吓人啊)

④ localstorage不能被爬虫爬取,不要用它完全取代URL传参

localstorage的使用

判断浏览器的支持:

function supports_html5_storage() {  try {  return 'localStorage' in window && window['localStorage'] !== null;  } catch (e) {  return false;  }  
}  
或使用开源的用来侦测用户浏览器对HTML5支持度的工具(例如Modernizr)
if (Modernizr.localstorage) {  // window.localStorage is available!  
} else {  // 浏览器不支持HTML5 storage :(  // 可以考虑使用dojox.storage 或其他方法  
}  

使用例子

localStorage.a = 3;//设置a为"3"
localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值
localStorage.setItem("b","isaac");//设置b为"isaac"
var a1 = localStorage["a"];//获取a的值
var a2 = localStorage.a;//获取a的值
var b = localStorage.getItem("b");//获取b的值
localStorage.removeItem("c");//清除c的值if (localStorage.pagecount){localStorage.pagecount=Number(localStorage.pagecount) +1;}
else{localStorage.pagecount=1;}
document.write("Visits "+ localStorage.pagecount + " time(s).");
</script>

SQLLite本地数据库

本地数据库支持比较少,不够规范,建议少用

本地数据库是H5之后出现的SQLLite数据库,可以通过SQL语言来访问文件型SQL数据库

使用数据库的步骤:

  1. 创建访问数据库
  2. 使用事务处理

创建访问数据库对象
博客出处
var db= openDatabase(‘mydb’,’1.0’,’TestDB’,2*1024*1024)

第一个参数:数据库名

第二个参数:版本号

第三个参数:数据库描述

第四个参数:数据库大小

该方法返回创建后的数据库访问对象,如果该数据库不存在,则创建数据库

用executeSql执行查询

transaction.executeSql(sqlquery,[],dataHandler,errorHandler);

第一个参数:查询语句

第二个参数:查询语句中的?

eg: transaction.executeSql(“UPDATE people set age=? which name=?”,[age,name])

第三个参数:执行成功时调用的回调函数

function dataHandler(transaction,result){//回调函数内容}

第四个参数:执行失败时调用的回调函数

function errorHandler(transaction,erromsg){//alert(“执行出错!”)}

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Sqlite</title>
</head>
<body onload="init()"><!-- 创建数据库对象、使用事务进行数据库操作 -->姓名:<input type="text" id="name"/>电话:<input type="text" id="tel" /><input type="button" value="保存" onclick="saveData()" /><hr/><input type="button" onclick="showAllData()" value="显示全部"><input type="button" onclick="delAllData()" value="清空全部"><hr/><table id="datatable" border="1"></table><p id="'msg"></p></body>
<script type="text/javascript">var datatable = null;var db = openDatabase('myTel','1.0','test db',1024*100);//数据库名 版本 数据库描述 大小function init(){//初始化工作datatable = document.getElementById('datatable');showAllData();}function removeAllData(){//移除页面上展示的数据for(var i = datatable.childNodes.length-1;i>=0;i--){datatable.removeChild(datatable.childNodes[i]);}var tr = document.createElement('tr');var th1 = document.createElement('th');var th2 = document.createElement('th');th1.innerHTML = '姓名';th2.innerHTML = '电话';tr.appendChild(th1);tr.appendChild(th2);datatable.appendChild(tr);}function showData(row){//显示数据var tr = document.createElement('tr');var td1 = document.createElement('td');td1.innerHTML = row.name;var td2 = document.createElement('td');td2.innerHTML = row.tel;tr.appendChild(td1);tr.appendChild(td2);datatable.appendChild(tr);}function showAllData(){//显示所有数据db.transaction(function (tx){tx.executeSql('create table if not exists TelData(name TEXT,tel TEXT)',[],function(tx,res){},function(tx,err){alert(err.message)});tx.executeSql('select * from TelData',[],function(tx,result){removeAllData();for(var i = 0 ;i<result.rows.length;i++){showData(result.rows.item(i));}})})}function saveData(){//保存数据var name = document.getElementById('name').value;var tel = document.getElementById('tel').value;addData(name,tel);showAllData();}function addData(name,tel){//添加数据db.transaction(function(tx){tx.executeSql('insert into TelData values(?,?)',[name,tel],function(tx,rs){alert('yes');},function (tx,err){alert(err.source +'===='+err.message);})})}function  delAllData(){//删除所有数据db.transaction(function(tx){tx.executeSql('delete from TelData',[],function(tx,res){alert('删除成功~');},function (tx,err){alert('删除失败'+err.message);})})showAllData();}
</script>
</html>

参考
http://blog.csdn.net/sinat_25127047/article/details/51360868
http://www.cnblogs.com/yexiaochai/p/4509472.html
http://blog.csdn.net/dojotoolkit/article/details/6614883
http://html5doctor.com/introducing-web-sql-databases/
https://dev.w3.org/html5/webdatabase/
http://blog.csdn.net/panda_m/article/details/49951555

这篇关于html5-localStorage本地存储和SQLLite本地数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994043

相关文章

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

Maven如何手动安装依赖到本地仓库

《Maven如何手动安装依赖到本地仓库》:本文主要介绍Maven如何手动安装依赖到本地仓库问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载依赖二、安装 JAR 文件到本地仓库三、验证安装四、在项目中使用该依赖1、注意事项2、额外提示总结一、下载依赖登

HTML5中的Microdata与历史记录管理详解

《HTML5中的Microdata与历史记录管理详解》Microdata作为HTML5新增的一个特性,它允许开发者在HTML文档中添加更多的语义信息,以便于搜索引擎和浏览器更好地理解页面内容,本文将探... 目录html5中的Mijscrodata与历史记录管理背景简介html5中的Microdata使用M

html5的响应式布局的方法示例详解

《html5的响应式布局的方法示例详解》:本文主要介绍了HTML5中使用媒体查询和Flexbox进行响应式布局的方法,简要介绍了CSSGrid布局的基础知识和如何实现自动换行的网格布局,详细内容请阅读本文,希望能对你有所帮助... 一 使用媒体查询响应式布局        使用的参数@media这是常用的

HTML5表格语法格式详解

《HTML5表格语法格式详解》在HTML语法中,表格主要通过table、tr和td3个标签构成,本文通过实例代码讲解HTML5表格语法格式,感兴趣的朋友一起看看吧... 目录一、表格1.表格语法格式2.表格属性 3.例子二、不规则表格1.跨行2.跨列3.例子一、表格在html语法中,表格主要通过< tab

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

数据库面试必备之MySQL中的乐观锁与悲观锁

《数据库面试必备之MySQL中的乐观锁与悲观锁》:本文主要介绍数据库面试必备之MySQL中乐观锁与悲观锁的相关资料,乐观锁适用于读多写少的场景,通过版本号检查避免冲突,而悲观锁适用于写多读少且对数... 目录一、引言二、乐观锁(一)原理(二)应用场景(三)示例代码三、悲观锁(一)原理(二)应用场景(三)示例

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行