html 5 本地数据库(Web Sql Database)

基于HTML5的Web DataBase 可以让你在浏览器中进行数据持久地存储管理和有效查询,假设你的离线应用程序有需要规范化的存储功能

本文讲述如何使用核心方法openDatabase、transaction、executeSql

1.新建一个网页,比如:test.html 内容如下:

[html] view plaincopy
  1. <!DOCTYPE html>  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=gbk" />  
  5. <title>web sql database</title>  
  6. <script type='text/javascript' src='jquery-1.4.3.js'></script>   
  7. <script type="text/javascript">  
  8. $(function(){  
  9.         if (!window.openDatabase) {    
  10.            alert("不支持");  
  11.         }    
  12.         else {    
  13.             initDB();    
  14.             createTables();               
  15.         }     
  16. function initDB(){    
  17.     var shortName = 'localDB';    
  18.     var version = '1.0';    
  19.     var displayName = 'localDB table';    
  20.     var maxSize = 655350; // in bytes    
  21.     //window.openDatabase("数据库名字", "版本","数据库描述",数据库大小);  
  22.     localDB = window.openDatabase(shortName, version, displayName, maxSize);    
  23. }     
  24. function createTables(){    
  25.     var query = 'CREATE TABLE IF NOT EXISTS user(id INTEGER NOT NULL, username TEXT NOT NULL);';    
  26.     try {    
  27.         localDB.transaction(function(transaction){    
  28.             transaction.executeSql(query, [], null, null);       
  29.         });    
  30.     }     
  31.     catch (e) {    
  32.     console.log("create table failed");  
  33.        alert("建表失败");  
  34.         return;    
  35.     }    
  36. }    
  37. });  
  38. function btnClick(){  
  39.  var username = $("#username").val();  
  40.   try {    
  41.         localDB.transaction(function(transaction){  
  42.             transaction.executeSql("insert into user(id,username) values(?,?)", [1,username]);    
  43.         });       
  44.     }     
  45.     catch (e) {    
  46.     console.log("insert into failed");  
  47.        alert("插入失败");  
  48.         return;    
  49.     }   
  50.     console.log("insert into success");  
  51.   //alert("insert into success");  
  52.  }  
  53.  function btnSelect(){  
  54.  localDB.transaction(function(tx) {  
  55.  tx.executeSql("select * from user", [],    
  56.   function(tx, result) {  
  57.   $("#result").empty();  
  58.    for(var i = 0; i < result.rows.length; i++){   
  59.    $("#result").append('<b>' +result.rows.item(i)['id']+"------" +result.rows.item(i)['username']+ '</b><br />');   
  60.   }   
  61.  }, function(){  
  62.   alert("error");  
  63.  });   
  64. });  
  65.  }  
  66. </script>  
  67. </head>  
  68. <body>  
  69.     <div id="my" style="height:100px;width:200px;border:1px solid red;">    
  70.     <input type="text" name="username" id="username" value=""/>  
  71.     <br/>  
  72.     <button onclick="btnClick()">insert</button>  
  73.     </div>  
  74.     <div id="my1" style="height:300px;width:200px;border:1px solid red;">  
  75.     <button onclick="btnSelect()">select</button>  
  76.    <div id="result" style="height:300px;width:200px;border:1px solid blue;">  
  77.       </div>  
  78.     </div>  
  79. </body>  
  80. </html>  

2.注意引入js文件哦

3.已经ok,直接打开网页浏览 ,用谷歌浏览器,然后 按 F12键 查看 Application --Web SQL 下面有新建的数据库以及表


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/247666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习资料及路线名称网站

IT前端学习资料及路线常用PC端UI组件库饿了么(Element-UI)https://element.eleme.cn/#/zh-CN常用小程序端UI组件库uView UIhttp://v1.uviewui.com/名称网站JQuery文件网https://code.jquery.com/jquery/jQuery手册&#xff08;pc端&#xff09;http://jquery.cuishifeng.cn/jQu…

JS实现生成一个周对应日期数组

/* 获取日期和周 */getDateWeek() {/* 得到当前日期的时间戳 */const timestamp Date.now()// const timestamp new Date(2019, 7, 30, 0, 0, 0, 0).getTime()const dateWeek Array.from(new Array(7)).map((_, i) > {/* 得到当前周每一天的时间戳 */const weekTimestamp…

npm升级package.json依赖包

使用npm管理node的包&#xff0c;可以使用npm update <name>对单个包升级&#xff0c;对于npm的版本大于 2.6.1,可以使用命令: npm install -g 升级全局的本地包。 对于版本小于2.6.1的一个一个包的升级实在是太麻烦&#xff0c;就想找到一个升级所有本地包的方法&#x…

Sublime Text 3 快捷键汇总

Sublime Text 3非常实用&#xff0c;但是想要用好&#xff0c;老是忘记&#xff0c;汇总一下&#xff0c;方便自己方便别人。 用惯了vim&#xff0c;有些快捷键也懒得用了&#xff0c;尤其是在win下面&#xff0c;还有图形界面&#xff0c;所以个人觉得最有用的还是搜索类&…

Minimal coverage (贪心,最小覆盖)

题目大意&#xff1a;先确定一个M&#xff0c; 然后输入多组线段的左端和右端的端点坐标&#xff0c;然后让你求出来在所给的线段中能够 把[0, M] 区域完全覆盖完的最少需要的线段数&#xff0c;并输出这些线段的左右端点坐标。 思路分析&#xff1a; 线段区间的起点是0&#x…

vuex知识点

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式&#xff1b;集中存储和管理应用的所有组件状态。 状态&#xff1a;什么是状态&#xff0c;我们可以通俗的理解为数据。Vue只关心视图层&#xff0c;那么视图的状态如何来确定&#xff1f;我们知道是通过数据驱动&#xff0c…

Kafka2.0生产者客户端使用

1 初始化配置 Kafka 通过 KafkaProducer 构造器初始化生产者客户端的配置。   常用的重要配置&#xff0c;详见官网。 bootstrap.servers&#xff1a;Kafka 集群地址&#xff08;host1:post,host2:post&#xff09;&#xff0c;Kafka 客户端初始化时会自动发现地址&#xff0…

vuex小例

少废话&#xff0c;先出东西 vuex main.js import Vue from vue import App from ./App import router from ./router import store from ./store Vue.config.productionTip falsenew Vue({el: #app,router,store,render: xx>xx(App) })store.js 平级目录未建文件夹import…

[论文笔记]CVPR2017_Joint Detection and Identification Feature Learning for Person Search

Title: Joint Detection and Identification Feature Learning for Person Search; aXiv上该论文的第一个版本题目是 End-to-End Deep Learning for Person SearchAuthors: Tong Xiao1* ; Shuang Li1* ; Bochao Wang2 ; Liang Lin2; Xiaogang Wang1 Affilations: 1.The Chines…

php下的原生ajax请求

浏览器中为我们提供了一个JS对象XMLHttpRequet&#xff0c;它可以帮助我们发送HTTP请求&#xff0c;并接受服务端的响应。 意味着我们的浏览器不提交&#xff0c;通过JS就可以请求服务器。ajax(Asynchronous Javascript And XML)其实就是通过XHR对象&#xff0c;执行HTTP请求。…

HBase性能优化总结

HBase性能优化方法总结&#xff08;一&#xff09;&#xff1a;表的设计 1. 表的设计 1.1 Pre-Creating Regions 默认情况下&#xff0c;在创建HBase表的时候会自动创建一个region分区&#xff0c;当导入数据的时候&#xff0c;所有的HBase客户端都向这一个region写数据&#x…

.NetCore如何使用ImageSharp进行图片的生成

ImageSharp是对NetCore平台扩展的一个图像处理方案&#xff0c;以往网上的案例多以生成文字及画出简单图形、验证码等方式进行探讨和实践。 今天我分享一下所在公司项目的实际应用案例&#xff0c;导出微信二维码图片&#xff0c;圆形头像等等。 一、源码获取 Git项目地址&…

vue2工程

vue当然可以使用script标签引入&#xff0c;不需任何依赖即可按照vue的语法进行使用。但中大型商用项目中&#xff0c;还是建议使用工程化方式使用vue&#xff0c;vue提供了官方脚手架vue-cli&#xff0c;可以快速构建vue项目&#xff0c;脚手架会帮助开发者创建好建议的工程目…

flutte的第一个hello world程序

用命令行创建项目&#xff1a; flutter create flutterdemo VSCode或者AS连接手机后 输入 flutter run 编译后就可以将默认的代码显示在手机上了 开始写hello world 代码&#xff0c;这段代码写在根目录\lib\main.dart文件中&#xff0c;也是Flutter主文件。 整个代码如下 impo…

Ajax 设置Access-Control-Allow-Origin实现跨域访问

之前遇到的问题整理 ajax跨域访问是一个老问题了&#xff0c;解决方法很多&#xff0c;比较常用的是JSONP方法&#xff0c;JSONP方法是一种非官方方法&#xff0c;而且这种方法只支持GET方式&#xff0c;不如POST方式安全。 即使使用jquery的jsonp方法&#xff0c;type设为POST…

vue工程webpack模板配置说明

vue工程webpack模板下的配置文件非常多&#xff0c;只能在实际开发过程中反复熟悉&#xff0c;才能渐渐体会官方将配置文件拆分细化的合理性。 主要配置文件中代码的作用从网上摘录了比较全的一份注释&#xff0c;做下记录。 dev-server.js 开发服务端配置 require(./check-v…

目录的拼接

找到被拼接文件所在的目录&#xff0c;然后进行拼接 import os 获取当前目录&#xff1a; os.path.dirname(__file__) 如下&#xff0c;被拼接文件所在目录与当前目录的上级目录在同一文件夹下&#xff1a; os.path.join(os.path.dirname(os.path.dirname(__file__)),‘文件夹路…

vue-resource 拦截器(interceptor)的使用

拦截器-interceptor 在现代的一些前端框架上&#xff0c;拦截器基本上是很基础但很重要的一环&#xff0c;比如Angular原生就支持拦截器配置&#xff0c;VUE的Axios模块也给我们提供了拦截器配置&#xff0c;那么拦截器到底是什么&#xff0c;它有什么用&#xff1f;拦截器能帮…

【GamePlay】入门篇

【GamePlay】入门篇 游戏性编程是指通过一系列游戏系统将游戏想法变成现实的过程。 本次的简例以NPC设计为主。 通常在进行脚本设计前&#xff0c;对NPC的属性进行基本的添加和设定&#xff0c;诸如动画系统、物理系统等等。 1.动画系统 添加Animator组件&#xff0c;绑定骨骼。…

vue axios POST请求中参数以form data和request payload形式的原因

HTTP请求中&#xff0c;如果是get请求&#xff0c;那么表单参数以namevalue&name1value1的形式附到url的后面&#xff0c;如果是post请求&#xff0c;那么表单参数是在请求体中&#xff0c;也是以namevalue&name1value1的形式在请求体中。通过chrome的开发者工具可以看…