HTML 5浏览器端数据库
HTML 5浏览器端数据库
为什么要使用浏览器端数据库:随着浏览器处理能力的增强,越来越多的双喜鸟网站开始考虑在客户端存储大量的数据,这可以减少用户从服务器获取数据的等待时间。
1。本地存储-本地存储可以长时间存储数据而不受时间限制。
可以存储:数组、JSON数据、图片、脚本、样式文件
复制代码
功能测试()。{
如果(窗口。localstorage)//确定浏览器是否支持localstorage
var ls=窗口。本地存储;
LSsetitem(“name”,“zhang san”);和//设置值
var名称=ls。getItem(“name”);值
LSremoveitem(“name”);//删除数据
}否则{
alert(“浏览器不支持本地存储”);
}
}
复制代码
限制:存储数据不能在子域名之间共享;超出存储范围,可以使用LRU和FIFO技术进行处理;
2。会话存储生命周期是当前窗口或选项卡。一旦窗口或选项卡永久关闭,通过会话存储存储存储的所有数据将被清空。
索引数据库
1。使用indexeddb的原因
现有的浏览器端数据存储方案不适合存储大量数据:cookie不超过4KB,每个请求都将被发送回服务器;windows.name属性不安全。
没有统一的标准,本地存储在2.5MB到10MB之间(不同的浏览器)。因此需要一种新的解决方案,这就是indexeddb的背景。
2。什么是索引数据库
一般来说,indexeddb是一个浏览器端数据库,可以由Web脚本创建和操作。它允许存储大量数据,提供查找接口,还可以索引。
这些是本地存储没有的。就数据库类型而言,indexeddb不是关系数据库(它不支持SQL查询语句),而是更接近于nosql数据库。
三。索引数据库的特性。
(1)键值对存储。indexeddb使用对象存储来存储数据。所有类型的数据都可以直接存储,包括javascript对象。在对象仓库中,
数据以“键值对”的形式存储。每个数据都有其对应的键名。密钥名是唯一的,不能重复,否则将引发错误。
(2)异步性。indexeddb操作不会锁定浏览器,与同步的本地存储不同,用户仍然可以执行其他操作。异步设计的目的是防止大量数据的读写,降低网页的性能。
(3)支持服务。indexeddb支持事务,这意味着在一系列操作步骤中,只要一个步骤失败,整个事务就会被取消。数据库返回到事务发生之前的状态,并且不存在只重写部分数据的情况。
(4)indexeddb也受同一个域的限制,每个数据库对应创建的数据库的域名。不同域名的网页只能访问自己域名下的数据库,不能访问其他域名下的数据库。
(5)indexeddb的存储空间比本地存储大得多,一般不小于250MB。IE的存储容量为250MB,Chrome和Opera占剩余空间的百分比,而Firefox则没有容量限制。
(6)支持二进制存储。indexeddb不仅可以存储字符串,还可以存储二进制数据。
目前,Chrome27+、火狐21+、Opera15+和IE10+支持这个API,但Safari根本不支持它。
4。使用
a.确定浏览器是否支持索引数据库
查看代码
B.创建/打开数据库
查看代码
c.关闭数据库
查看代码
D.数据操作
在对新数据库执行任何操作之前,事务需要启动一个事务。在事务中,需要指定存储事务跨度的对象。
交易有三种模式
只读:只读,不能修改数据库数据,可以同时执行
读写:读写,允许你读写
版本更改:VerionChange
D1。添加数据
查看代码
D2。按键获取数据
查看代码
D3。读取集合
查看代码
D4。更新数据
查看代码
D5。删除数据
查看代码
D6。空数据
查看代码
好文章应该引起我的注意。
HTML 5浏览器端数据库的更多相关文章
- html5 浏览器端数据库
为什么使用浏览器端数据库:随着浏览器的处理能力不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少用户等待从服务器获取数据的时间. 一.localStorage — 本地存储 可 ...
- js IndexedDB:浏览器端数据库的demo实例
IndexedDB具有以下特点. (1)键值对储存. IndexedDB内部采用对象仓库(object store)存放数据.所有类型的数据都可以直接存入,包括JavaScript对象.在对象仓库中, ...
- 浏览器端获取短信验证码java实现——阿里云短信服务
需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...
- [原创]Spring-Security-Oauth2.0浏览器端的登录项目分享
1.简介 CitySecurity项目为正式上线项目做得一个Demo,这里主要介绍浏览器端的登录.本项目使用了SpringSecurity实现表单安全登录.图形验证的校验.记住我时长控制机制.第三 ...
- js接收对象类型数组的服务端、浏览器端实现
1.服务端 JSONArray jsonArr = JSONUtil.generateObjList(objList); public static generateObjList(List<O ...
- 为什么commonjs不适合于浏览器端
有了服务器端模块以后,很自然地,大家就想要客户端模块.而且最好两者能够兼容,一个模块不用修改,在服务器和浏览器都可以运行. 但是,由于一个重大的局限,使得CommonJS规范不适用于浏览器环境.还是上 ...
- [SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端
原文:[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端 之前开发基于WinForm监控的软件,服务端基于Wcf实现,里面涉及双工模式,在客户端里面,采用心跳包机制保持与服 ...
- FingerprintJS - 在浏览器端实现指纹识别
FingerprintJS 是一个快速的浏览器指纹库,纯 JavaScript 实现,没有依赖关系.默认情况下,使用 Murmur Hash 算法返回一个32位整数.Hash 函数可以很容易地更换. ...
- angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)
2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...
随机推荐
- php-fpm 重启
查看php-fpm进程数:ps aux | grep -c php-fpm [root@ssy106c14c190c69 etc]# ps -ef | grep php-fpm --- 查看php- ...
- 关于antd form表单getFieldsError方法
getFieldsError()方法其实只有required:true时,双向数据绑定. {getFieldDecorator('note', { rules: [{ required: true, ...
- OpenGL(5)——变换
学习三种变换:Scaling, Rotation和Translation. 上学期修了Kobbelt教授(男神!)的图形学基础课,这部分内容已经接触过. 添加GLM库,直接给出齐次坐标系下的变换矩阵和 ...
- 【FFMEPG】windows下编译ffmpeg2.5——使用VS2013,ARMLINUX,ANDORID编译ffmpeg
原文:http://blog.csdn.net/finewind/article/details/42784557 一.准备: 1. 本机环境: win7 64bit: 2. 安装MinGW到C:\M ...
- ffmpeg学习笔记-native原生绘制
上次已将ffmpeg的动态库编译出来了,并且使用了ffmpeg的转码功能,成功将mp4格式视频转化为yuv视频,这篇文章基于上次测试的demo,使用surfaceview显示解码完成的像素数据 布局设 ...
- Java学习笔记-抽象类与接口
抽象类用于在类中不用具体实现,而在子类中去实现的类 抽象类 抽象类概述 抽象定义:抽象就是从多个事物中将共性的,本质的内容抽取出来 抽象类:Java中可以定义没有方法体的方法,该方法的具体实现由子类完 ...
- 2019华东交通大学ACM基地简介
一.基地成就简介: ACM国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC))是由国际 ...
- 【gcd】辗转相除法
#include<stdio.h> int gcd(int a, int b) { int c; while(b) { c = a % b; a = b; b = c; } return ...
- JavaSE基础(九)--Java二进制运算
Java二进制运算 Java二进制表示法 首先了解下二进制,二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制. 二进制就是只有 ...
- Linux Shell中的变量声明和一些特殊变量
在SHELL中定义变量比较直接,无类型区别,不需要像Java那样定义好是String还是int等. 声明变量需要遵守或者注意的几点: 变量名和等号之间不能有空格. 变量名首字符必须为字母. 变量名里可 ...