使用 getItem 方法或使用 sessionStorage 对象或 localStorage 对象的自定义属性值读取数据,使用 setItem 方法或使用 sessionStorage 对象或 localStorage 对象的自定义属性值保存数据,虽然这种一对一的数据读写方法使用起来比较方便,但是在实际使用过程中用处并不是很大,因为如果要保存的数据量比较大,那么使用这种方法会非常麻烦。下面来看一下如何利用web storage 来保存和读取大量数据。

  这里来看一个简单 web 留言本的示例。使用一个多行文本框来输入数据,单击按钮时将文本框中的数据保存到 localStorage 中,在表单下部放置一个 p 元素来显示保存后的数据。

  只保存文本框中的内容,并不能知道该内容是什么时候写好的,所以在保存该内容的同时,也要保存当前日期和时间,并将日期和时间一并显示在 p 元素中。

  在利用 web storage 保存数据时,数据必须是 “键名/键值”这个格式,所以将文本框的内容作为键值,保存时的日期和时间作为键名进行保存,计算机中的时间是以时间戳( 1970年1月1日凌晨12点后经过的秒数 ) 的形式进行管理的,所以保存时不会存在重复的键名。

  下面是显示页面的HTML 代码部分。在该页面中,除了输入数据用的文本框与显示数据用的 p 元素之外,还放置了追加按钮和初始化按钮,单击追加按钮来保存数据,单击初始化按钮来清除全部数据。

1 <textarea name="textarea" id="textarea" cols="30" rows="10"></textarea>
2 <input onclick="saveStorage()" type="button" value="追加" />
3 <input onclick="clearStorage()" type="button" value="初始化" />
4 <br />
5 <p id="msg"></p>

  下面来看一下script 脚本文件。现在这个文件里有3 个供单击按钮时调用的函数,分别是 saveStorage 、loadStorage 和 clearStorage 。

  1,saveStorage 函数;

    这个函数比较简单,使用 new Date().getTime() 语句得到了当前的日期和时间的时间戳,然后调用 localStorage.setItem 方法得到的时间戳作为键名,并将文本框中的数据作为键值进行保存。保存完毕后,重新调用脚本中的 loadStorage 函数在页面上显示保存后的数据。

function saveStorage(){var timeval = new Date().getTime();var keyname = document.getElementById("textarea").value;localStorage.setItem(keyname,timeval);alert("数据以保存");loadStorage();
}

  2,loadStorage 函数;

    这个函数取得保存后的所有数据,然后以表格的形式进行显示。在取得全部数据的时候,需要使用到 localStorage 的两个比较重要的属性。

    2.1 localStorage.length  :所有保存在 localStorage 中的数据的条数。

    2.2 localStorage.key(index) :将想要得到的数据的索引号作为 index 参数传入,可以得到在 localStorage 中与这个索引号对应的数据。比如想得到第 6 条数据,传入 index 为 5 (index 是从 0 开始计算的)

  先用 localStorage.length 属性获取保存数据的条数,然后做一个循环,在循环内使用一个变量,该变量从 0 开始作为 index 参数传入localStorage.key(index )属性,每次循环时该变量加 1。通过这种方法,取得保存在 localStorage 中的所有数据。

function loadStorage(){var msg = document.getElementById("msg");var result = "<table border='1'>";for(var i=0;i<localStorage.length;i++){var keyname = localStorage.key(i);var val = localStorage.getItem(keyname);var datetime = new Date();datetime.setTime(val);result+= "<tr><td>"+keyname+"</td><td>"+datetime+"</td></tr>";}result += "</table>";msg.innerHTML = result;
}

  3,clearStorage 函数

  将localStorage 中保存的数据全部清除。在这个函数中只有一句语句 localStorage.clear()  在调用 localStorage 的 clear 方法后所有保存在 localStorage 中的数据都会被清除。

function clearStorage(){localStorage.clear();alert("数据已被清除");loadStorage();
}

  该示例在浏览器中的运行效果如下

  

转载于:https://www.cnblogs.com/jyfeng/p/8526251.html

使用 web storage 制作简单留言本相关推荐

  1. 【军哥谈CI框架】之制作简单留言板的例子

    亲们 ,好久不见了,军哥可想死你们了!最近都比较忙吧,军哥亦是如此哦,首先忙于学习,不断让学习成为一种信仰,一种习惯:接着是忙于运动,生命在于生生不息嘛,军哥在这里表达的不是生命在于运动,否则成天运动 ...

  2. 编写Java 制作留言板_JSP+Servlet+JavaBean制作简单留言板

    [实例简介] 本资源是一个简易留言板的代码,主要用了JSP+Servlet+JavaBean传统方式,实现登录.注册与留言的功能,内容仅供学习参考. 下载的文件肯定不能直接运行,需要自己配好服务器与环 ...

  3. 使用JavaScript DOM制作简单留言板

    效果图: 先准备html代码: <body><textarea name="" id=""></textarea><b ...

  4. 使用 jQuery Mobile 与 HTML5 开发 Web App (十六) —— HTML5 Web Storage

    绝大多数的软件都需要使用某种具有持久性的方式来存储数据,Web Apps 也不例外,涉及到完整后台的 Web Apps ,可以直接在后台使用 mysql 等数据库来存储数据,但过多的 sql 查询会影 ...

  5. web实验2 制作简单网页(HTML+CSS)

    web实验2 制作简单网页(HTML+CSS) 一.实验目的 1.掌握文本样式的设置. 2.掌握图像样式的设置. 3.掌握各种媒体的插入方法. 二.实验内容 采用DIV+CSS,制作"在线电 ...

  6. php留言本在线制作,Flash+php+mysql简单留言本制作

    推荐:Flash底片特效的制作在AS3中显示对象都有一个transform属性,设置这个属性可以改变显示对象的大小,旋转,颜色等特性.transform属性还有它自已的属性, 其中的colorTran ...

  7. 老徐WEB:最简单详细的轮播图原理和制作过程(一)

    老徐利用空闲时间,制作了一个最简单的轮播图,主要介绍轮播图的原理和制作过程,只要大家能认真看完这篇文章,并理解文中内容,就能完全掌握轮播图的制作了.之后工作中碰到复杂的轮播图,自己也能思考制作出来了. ...

  8. web个人主页制作代码_关于嵌入式web服务器

    1.boa的配置文件boa.conf Port 80 //服务访问端口 User 0 Group 0 ErrorLog /var/log/boa/error_log //错误日志地址 AccessLo ...

  9. H5中使用Web Storage来存储结构化数据

    在上一篇对Web Storage的介绍中,可以看到,使用Storage保存key-value对时,key.value只能是字符串,这对于简单的数据来说已经够了,但是如果需要保存更复杂的数据,比如保存类 ...

最新文章

  1. ARM:钒和铁替代固氮酶的前世今生
  2. 5GS 协议栈 — N1 接口的协议栈(NAS)
  3. pytest fixture执行顺序
  4. 雨棚板弹性法计算简图_钢结构工程量计算4点注意事项,还不来看?
  5. python3 Xml操作
  6. 我的半个拓展训练(三)
  7. 微信端修改title
  8. 赵学军: 理想主义者的下一城
  9. PS制作gif表情包
  10. [spfa][数论]JZOJ 4722 跳楼机
  11. 2022-2023年度的AMC数学竞赛报名时间来了
  12. 简析BlockingQueue
  13. docker容器添加自定义hosts
  14. 怎样做一个好的网管?
  15. 如何实现3D网页游戏?
  16. win7计算机左边桌面选项没,win7系统桌面左下角开始菜单不见了的解决方法
  17. 杰理AD6973D4作用普通mcu
  18. java网络编程案例9-1模拟微信聊天
  19. 为什么用企业微信做私域运营
  20. cad标注文字避让lisp_请教大家如何将标注标准设定“文字位置设置为置中”

热门文章

  1. springboot启动图标_SpringBoot基础教程
  2. java使double保留两位小数
  3. RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较(转)
  4. Spring Boot 使用 Dom4j XStream 操作 Xml
  5. axios中get与post方式传参区别
  6. SpringCloudConfig分布式配置中心-基本使用
  7. Android开发笔记(一百一十二)开发工具
  8. python 迭代器协议斐波那契数列
  9. 集群服务器下使用SpringBoot @Scheduled注解定时任务
  10. 51NOD 2026:Gcd and Lcm——题解