当前位置: 首页 > news >正文

【HTML5】Web存储

HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

HTML5 使用 JavaScript 来存储和访问数据。

localStorage 方法

localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。

例:

<!DOCTYPE HTML>
<html>
<body>

<script type="text/javascript">

localStorage.lastname="Smith";
document.write("Last name: " + localStorage.lastname);

</script>

</body>
</html>

 

计数器:

<!DOCTYPE HTML>
<html>
<body>

<script type="text/javascript">

if (localStorage.pagecount)
    {
    localStorage.pagecount=Number(localStorage.pagecount) +1;
    }
else
    {
    localStorage.pagecount=1;
    }
document.write("Visits: " + localStorage.pagecount + " time(s).");

</script> 

<p>刷新页面会看到计数器在增长。</p>

<p>请关闭浏览器窗口,然后再试一次,计数器会继续计数。</p>

</body>
</html>

sessionStorage 方法

sessionStorage 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

例:

<!DOCTYPE HTML>
<html>
<body>

<script type="text/javascript">

sessionStorage.lastname="Smith";
document.write(sessionStorage.lastname);

</script>

</body>
</html>

 

计数器:

<!DOCTYPE HTML>
<html>
<body>

<script type="text/javascript">

if (sessionStorage.pagecount)
    {
    sessionStorage.pagecount=Number(sessionStorage.pagecount) +1;
    }
else
    {
    sessionStorage.pagecount=1;
    }
document.write("Visits " + sessionStorage.pagecount + " time(s) this session.");

</script> 

<p>刷新页面会看到计数器在增长。</p>

<p>请关闭浏览器窗口,然后再试一次,计数器已经重置了。</p>

</body>
</html>

 

相关文章:

  • 利用 vuex写一个todoList
  • Java日志组件2---Log4j(org.apache.log4j.Logger)
  • react项目搭建
  • mybatis3.0 配置等值连接两种方式:resultMap和resulttype
  • react官方脚手架安装
  • 怎么用ChemDraw 15.1 Pro绘制彩色结构
  • react实现打印功能
  • 关于CreateProcess函数一些经验
  • 前端解决跨域 cors
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 斐波那契数列 的计算规则
  • react 中 props 和 state的相同与不同
  • 理解java Web项目中的路径问题
  • react 中千万不要在render里调用this.setState
  • 系统界面图片
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • CSS盒模型深入
  • HashMap ConcurrentHashMap
  • JavaScript 基础知识 - 入门篇(一)
  • Promise面试题2实现异步串行执行
  • SegmentFault 社区上线小程序开发频道,助力小程序开发者生态
  • spring cloud gateway 源码解析(4)跨域问题处理
  • SpringBoot几种定时任务的实现方式
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • underscore源码剖析之整体架构
  • Vue学习第二天
  • Vue源码解析(二)Vue的双向绑定讲解及实现
  • Vue组件定义
  • WePY 在小程序性能调优上做出的探究
  • 第十八天-企业应用架构模式-基本模式
  • 对超线程几个不同角度的解释
  • 关于使用markdown的方法(引自CSDN教程)
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端
  • 使用parted解决大于2T的磁盘分区
  • 思维导图—你不知道的JavaScript中卷
  • 最简单的无缝轮播
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • #我与Java虚拟机的故事#连载05:Java虚拟机的修炼之道
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (二)换源+apt-get基础配置+搜狗拼音
  • (规划)24届春招和25届暑假实习路线准备规划
  • (利用IDEA+Maven)定制属于自己的jar包
  • (南京观海微电子)——COF介绍
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)linux下的时间函数使用
  • (转)德国人的记事本
  • (转)用.Net的File控件上传文件的解决方案
  • .axf 转化 .bin文件 的方法