HTML5 使用 sessionStorage 进行页面传值的方法


Posted in HTML / CSS onJuly 02, 2018

HTML5 提供的本地存储功能,使得web应用可以将数据存储在用户的本地浏览器。在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

在客户端存储的方法有两种:
1. localStorage: 没有时间限制的存储,而且容量大,至少5M大小;所有相同域名的页面都可以存储和获取相同的数据。
2. sessionStorage: 针对一个session的数据存储,该tab关掉就会消失。

目前大部分浏览器都已经很好地支持了 HTML5 ,但了为安全,使用前还是应该做客户端检测:

if (typeof(Storage) !== "undefined") {
    // Code for localStorage/sessionStorage.
} else {
    // Sorry! No Web Storage support..
}

之所以会使用到这个功能,是因为我目前在做的一个数据型网站,要通过API接口查询参数传给后台,并获取数据库中返回的数据。而这里有一个问题,我要在页面 a 跳转到页面 b,然后在页面 b 调用API 接口将参数数据传给后台并获取数据,而该参数数据是在页面 a 获得的,那么如何将页面 a 产生的值传递给页面 b 呢?

假设我们要传给后台的值和数据格式是: {unitGroup:["一年级","二年级","三年级"];

那么在页面 a 生成了我们所需要的数据 unitGroup 后,则使用 sessionStorage:

if (typeof(Storage) !== "undefined") {
    sessionStorage["unitGroup"] = data.unit.value;
} else {
    sessionStorage["unitGroup"] = '';
}

然后在页面 b 就可以通过以下语句获取:

var unit_group = '';
if (typeof(Storage) !== "undefined") {
    var myunits = sessionStorage["unitGroup"];
    unit_group = myunits.split(",");
}

然后即可调用 ajax 将数据传给后台:

var newData = {unitGroup: unit_group};

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
CSS3制作翻转效果_动力节点Java学院整理
Jul 11 HTML / CSS
CSS3教程(1):什么是CSS3
Apr 02 HTML / CSS
纯CSS3打造动感漂亮时尚的扇形菜单
Mar 18 HTML / CSS
一款CSS3实现多功能下拉菜单(带分享按)的教程
Nov 05 HTML / CSS
css和css3弹性盒模型实现元素宽度(高度)自适应
May 15 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
Jun 20 HTML / CSS
Html5插件教程之添加浏览器放大镜效果的商品橱窗
Jan 07 HTML / CSS
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
Jan 27 HTML / CSS
调用HTML5的Canvas API绘制图形的快速入门指南
Jun 17 HTML / CSS
html5默认气泡修改的代码详解
Mar 13 HTML / CSS
CSS3实现模糊背景的三种效果示例
Mar 30 HTML / CSS
CSS中理解层叠性及权重如何分配
Dec 24 HTML / CSS
canvas三角函数模拟水波效果的示例代码
Jul 03 #HTML / CSS
你可能不熟练的十个前端HTML5经典面试题
Jul 03 #HTML / CSS
canvas实现飞机打怪兽射击小游戏的示例代码
Jul 09 #HTML / CSS
canvas绘制表情包的示例代码
Jul 09 #HTML / CSS
html5 利用canvas手写签名并保存的实现方法
Jul 12 #HTML / CSS
详解Html5微信支付爬坑之路
Jul 24 #HTML / CSS
基于Html5实现的react拖拽排序组件示例
Aug 13 #HTML / CSS
You might like
剧场版动画《PSYCHO-PASS 3 FIRST INSPECTOR》3月27日日本上映!
2020/03/06 日漫
php中计算时间差的几种方法
2009/12/31 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
php中的PHP_EOL换行符详细解析
2013/10/26 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
php xhprof使用实例详解
2019/04/15 PHP
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
js css 实现遮罩层覆盖其他页面元素附图
2014/09/22 Javascript
js实现文本框只允许输入数字并限制数字大小的方法
2015/08/19 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
js仿3366小游戏选字游戏
2016/04/14 Javascript
json的使用小结
2016/06/08 Javascript
Bootstrap图片轮播组件Carousel使用方法详解
2016/10/20 Javascript
JavaScript数据结构链表知识详解
2016/11/21 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
vue路由懒加载的实现方法
2018/03/12 Javascript
bootstrap table.js动态填充单元格数据的多种方法
2019/07/18 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
tornado框架blog模块分析与使用
2013/11/21 Python
python使用webdriver爬取微信公众号
2018/08/31 Python
python Django的web开发实例(入门)
2019/07/31 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
PyQt5的相对布局管理的实现
2020/08/07 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
澳大利亚最便宜的网上药房:Chemist Warehouse
2020/01/30 全球购物
请用Python写一个获取用户输入数字,并根据数字大小输出不同信息的脚本
2014/05/20 面试题
高中三年学习生活的自我评价
2013/10/10 职场文书
浪漫婚礼主题活动策划方案
2014/09/15 职场文书
整改报告怎么写
2014/11/06 职场文书
初婚初育证明范本
2015/06/18 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL