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浏览器端数据库的更多相关文章

  1. html5 浏览器端数据库

    为什么使用浏览器端数据库:随着浏览器的处理能力不断增强,越来越多的网站开始考虑,将大量数据储存在客户端,这样可以减少用户等待从服务器获取数据的时间. 一.localStorage  — 本地存储  可 ...

  2. js IndexedDB:浏览器端数据库的demo实例

    IndexedDB具有以下特点. (1)键值对储存. IndexedDB内部采用对象仓库(object store)存放数据.所有类型的数据都可以直接存入,包括JavaScript对象.在对象仓库中, ...

  3. 浏览器端获取短信验证码java实现——阿里云短信服务

    需求:浏览器端输入手机号,获取验证码.点击登录,验证验证码是否输入错误.是否超时等情况,一旦校验通过,将用户数据保存到数据中(业务逻辑). 前提:注册阿里用户,开通短信服务,申请key.秘钥.签名.短 ...

  4. [原创]Spring-Security-Oauth2.0浏览器端的登录项目分享

    1.简介 ​ CitySecurity项目为正式上线项目做得一个Demo,这里主要介绍浏览器端的登录.本项目使用了SpringSecurity实现表单安全登录.图形验证的校验.记住我时长控制机制.第三 ...

  5. js接收对象类型数组的服务端、浏览器端实现

    1.服务端 JSONArray jsonArr = JSONUtil.generateObjList(objList); public static generateObjList(List<O ...

  6. 为什么commonjs不适合于浏览器端

    有了服务器端模块以后,很自然地,大家就想要客户端模块.而且最好两者能够兼容,一个模块不用修改,在服务器和浏览器都可以运行. 但是,由于一个重大的局限,使得CommonJS规范不适用于浏览器环境.还是上 ...

  7. [SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端

    原文:[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端 之前开发基于WinForm监控的软件,服务端基于Wcf实现,里面涉及双工模式,在客户端里面,采用心跳包机制保持与服 ...

  8. FingerprintJS - 在浏览器端实现指纹识别

    FingerprintJS 是一个快速的浏览器指纹库,纯 JavaScript 实现,没有依赖关系.默认情况下,使用 Murmur Hash 算法返回一个32位整数.Hash 函数可以很容易地更换. ...

  9. angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

    2015-10-26 angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前 ...

随机推荐

  1. C之输入输出

    %d - int%ld – long (long int)%lld - long long%hd – short 短整型 (half int) %c - char%f - float%lf – dou ...

  2. mfc通过信号量保证线程同步

    1.声明一个全局handle,记住在cpp里也声明 extern HANDLE uiHandle; 2.创建信号量 uiHandle = CreateSemaphore(NULL,1,1,NULL); ...

  3. python3 super().__init__() 和 __init__() 的区别

    1.单继承 super().__int__()和 Base.__init__(self)是一样的, super()避免了基类的显式调用. class Base(object): def __init_ ...

  4. 假如React没了JSX

    如题,想必React大家早已不陌生,而React里面的JSX都是玩的得心应手了,但是假如说React里面没有了React那会是一种什么样的情形呢,我们来简单的看一下. 首先我们来实现一个简单的list ...

  5. 嵌入(embedding)层的理解

    首先,我们有一个one-hot编码的概念. 假设,我们中文,一共只有10个字...只是假设啊,那么我们用0-9就可以表示完 比如,这十个字就是“我从哪里来,要到何处去” 其分别对应“0-9”,如下: ...

  6. linux ssh利用公钥免密登陆

    1.安装检查ssh 如果没有ssh的话,需要安装 #yum  install -y openssh-server openssh-clients 2.生成秘钥 ssh-keygen -t rsa 执行 ...

  7. Java学习笔记-包,classpath,import,jar

    这里介绍Java的包,classpath,import和jar 包(package) 对类文件进行分类管理 给类提供多层命名空间 写在程序文件的第一行 类名的全称的是 包名.类名 包也是一种封装形式 ...

  8. c语言深度解剖(笔记)

    1.1最宽恒大量的关键字----auto 函数内部变量,限制作用域为这个 1.2.1最快的关键字---- register函数. 关键字请求编译器尽可能的将变量存在 CPU 内部寄存器中 1.2.2使 ...

  9. Windows下直接双击可执行的jar

    如果没有设置,那么就是用命令行: jar处在文件夹路径下打开命令行:java -jar xxx.jar 总的来说是有点不方便 首先默认打开jar程序得是相同jdk的java.exe 然后是一闪而过 下 ...

  10. 如何使用 Issue 管理软件项目?

    软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一.