音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

HTML5中的网络存储实现方式
日期:2021-09-04 20:35:35   来源:脚本之家

1 前言

随着互联网的快速发展,基于网页的应用越来越普遍,同时也变得越来越复杂,为了满足日益更新的需求,会经常性的在本地设备上存储数据,例如记录历史活动信息。传统方式使用document.cookie来进行存储,但是由于其存储的空间只有4KB左右,并且需要复杂的操作进行解析,给发开者带来很多不便,为此,HTML5规范提出了网络存储的解决方案。

2 Web storage及其两种存储方式

2.1 Web Storage简介

2.1.1 特点

(1)设置数据和读取数据比较方便

(2)容量较大,sessionStorage约5M,localStorage约20M

(3)只能存储字符串,如果要存储JSON对象,可以使用window.JSON的stringify()方法和parse()方法进行序列化和反序列化。

2.1.2 优势

(1)减少网络流量:一旦数据保存在本地后,就可以避免再向服务器请求数据,因此减少不必要的数据请求,减少数据在浏览器和服务器间不必要地来回传递。

(2)快速显示数据:性能好,从本地读数据比通过网络从服务器获得数据快得多,本地数据可以即时获得。加上网页本身也可以有缓存,整个页面和数据都在本地的话,可以立即显示。

(3)临时存储:很多时候数据只需要在用户浏览一组页面期间使用,关闭窗口后数据就可以丢弃了,这种情况使用sessionStorage非常方便。

2.2 localStorage实现本地存储

localStorage作为HTML5 Web Storage的API之一,主要的作用是进行本地存储。本地存储是指将数据按照键值对的方式保存在客户端计算机中,直到用户或者脚本主动清除数据,否则该数据会一直存在。也就是说,使用了本地存储的数据将被持久化。localStorage的优势在于拓展了cookie的4KB限制,并且会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库。

2.2.1 localStorage中的方法属性

方法属性

描述

setItem(key,value)

该方法接收一个键名和值作为参数,将会把键值对添加到存储中,如果键名存在,则更新其对应的值

getItem(key)

该方法接收一个键名作为参数,返回键名对应的值

romoveItem(key)

该方法接收一个键名作为参数,并把该键名从存储中删除

length

类似数组的length属性,用于访问Storage对象中item的数量

key(n)

用于访问第n个key的名称

clear()

清除当前域下的所有localSotrage内容

表格 2.2.1

代码示例:

<!DOCTYPE  html>

<html>

<head>

<meta  charset="UTF-8">

<title>localStorage</title>

</head>

<body>

<input  type="text" id="username" >

<input  type="button"   value="localStorage 设置数据 "  id="localStorageId">

<input  type="button"   value="localStorage 获取数据 "  id="getlocalStorageId">

<input  type="button"   value="localStorage 删除数据 "  id="removesessionStorageId">

<script>

document.getElementById("localStorageId").onclick=function(){

// 把用户在 input   里面数据的数据保存到 localStorage

var  username=document.getElementById("username").value;

window.localStorage.setItem("username",username);

};

document.getElementById("getlocalStorageId").onclick=function(){

// 获取数据,从 localStorage

var  username=window.localStorage.getItem("username");

alert(username);

};

document.getElementById("removesessionStorageId").onclick=function(){

// 删除 localStorage 中的数据

var  username=document.getElementById("username").value;

window.localStorage.removeItem("username");

};

</script>

</body>

</html>

sessionStorage 主要用于区域存储,区域存储是指数据只在单个页面的会话期内有效。由于 sessionStroage 也是 Storage 的实例, sessionStroage 与 localStorage 中的方法基本一致,唯一区别就是存储数据的生命周期不同, locaStorage 是永久性存储,而 sessionStorage 的生命周期与会话保持一致,会话结束时数据消失。

 2.3sessionStorage实现区域存储 

从硬件方面理解, localStorage 的数据是存储子在硬盘中的,关闭浏览器时数据仍然在硬盘上,再次打开浏览器仍然可以获取,而 sessionStorage 的数据保存在浏览器的内存中,当浏览器关闭后,内存将被自动清除,需要注意的是, sessionStorage 中存储的数据只在当前浏览器窗口有效。

代码示例:

<!DOCTYPE  html>

<html>

<head>

<meta  charset="UTF-8">

<title>sessionStorage</title>

</head>

<body>

姓名:  <input type="text" id="username"> 年龄:  <input type="text" id="age">

<input  type="button" value="sessionStorage 设置数据 "  11 id="sessionStorageId">

<input  type="button" value="sessionStorage 获取数据 "  id="getsessionStorageId">

<input  type="button" value="sessionStorage 清除所有数据 "  id="clearsessionStorageId">

<script>

// 增加数据

document.getElementById("sessionStorageId").onclick  = function() {

// 获取姓名和年龄输入框的值

var  username = document.getElementById("username").value;

var age =  document.getElementById("age").value;

// 定义一个 user 对象用来保存获取的信息

var user  = {

username: username,

age: age

}

// 使用 stringify() 将 JSON 对象序列号并存入到 sessionStorage

window.sessionStorage.setItem("user",JSON.stringify(user));

};

//sessionStorage   里面存储数据,如果关闭了浏览器,数据就会消失 ..

// 单个浏览器窗口页面有效

document.getElementById("getsessionStorageId").onclick  = function() {

var valu = window.sessionStorage.getItem("user");

alert(valu);

};

// 清除所有的数据

document.getElementById("clearsessionStorageId").onclick  = function() {

window.sessionStorage.clear();

};

</script>

</body>

</html>

3 总结

HTML5中的两种存储方式都比较实用,我们在设计前端页面时,可以根据相应的用户访问情况预测来增添相应的js,既增加了用户浏览的体验,又能实现存储管理的高效性,合理的利用存储空间。

到此这篇关于HTML5中的网络存储的文章就介绍到这了,更多相关html5 网络存储内容请搜索以前的文章或继续浏览下面的相关文章,希望大家以后多多支持!

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    HTMLCSSDreamweaverFrontpage