在前两天的开发时,遇到一个问题,需要将一个网页在预加载时,优先出一个弹出框,但是再次加载时不希望它出现,在经过一段时间的搜索和尝试之后,发现了大多使用的两种方式:生成cookie和webStorage,简单来说就是创建网站缓存,记忆下曾经显示过,在之前的网站开发中,用到最多的就是cookie,但是这一次,在只考虑前端的情况下,我不知道如何下手了,一时之间忘记了动态生成cookie的操作,于是发现了一个更加好用的方式webStorage,webstorage分为两种方式,一种是localStorage,另一种是sessionStorage

  webStorage的两种方式存在区别,localStorage是一种永久存在的网站缓存,这意味着如果使用这一种方式进行网站的设计,那么永久的存储需要手动的删除localStorage信息;sessionStorage类似于临时的网站缓存,仅对当前任务窗口起作用,关闭窗口或者关闭浏览器都会自动清除

  $(document).ready(function () {
//弹框的显示(session方式)
if(!window.sessionStorage.getItem("storage")){
$('#auth').modal('show')
window.sessionStorage.setItem("storage",'true')
}
//弹框显示(local方式)
if(!window.localStorage.getItem("storage")){
$('#auth').modal('show')
window.localStorage.setItem("storage",'true')
}
})

由于wbStorage不能设置过期时间,更多情况下是需要设置过期的,webStorage不建议使用,但如果仅仅是一个提示作用的弹出框等无关紧要的可以使用,从而实现降低服务器压力的作用,其次是cookie的使用,cookie可以实现与服务器的交互通信:每次携带在HTTP的headers中,但不可以保存过多的cookie,一般情况下,网站的一个站点最多保存20个cookie,每一个不能超过4kb

cookie的优缺点:

优点:具有极高的扩展性和可用性

  1、通过良好的编程,控制保存在cookie中的session对象的大小;

  2、通过加密和安全传输技术,减少cookie被破解的可能性;

  3、尽量在cookie中存放不敏感的数据,即使被盗取也不会很大损失;

  4、控制cookie的生命周期,即设置过期时间

缺点:

  1、cookie的长度和数量的限制,每个站点只能最多20个cookie,每一个不能超过4kb,否则会被截掉

  2、安全性,如果cookie被人拦掉了,那个人就可能会获取到所有session的信息,加密也不起作用

  3、实现的能力有限,因为cookie是存在客户端,有些需要服务端做的事情,如果使用cookie,无法进行正常实现

cookie,webstorage的理解的更多相关文章

  1. cookie导读,理解什么是cookie

    一.cookie导读,理解什么是cookie    1.什么是cookie:cookie是一种能够让网站服务器把少量数据(4kb左右)存储到客户端的硬盘或内存.并且读可以取出来的一种技术.    2. ...

  2. 对session和cookie的一些理解

    由于项目需要,最近用session容器比较多,传载的同时加上了自己的一些理解,不足之处还请大家补充和纠正.);                  response.addCookie(c1);   * ...

  3. cookie&&session再理解笔记

    就拿php来说,两个php页面之间不拿get,post传递变量的话,数据是不能共享的.访问完1.php页面该页面的变量就被销毁了.所以就拿学校食堂来说,拿现金买饭的话你交完钱后,他给你个票以便确认你, ...

  4. cookie mapping 原理理解

    深入浅出理解 COOKIE MAPPING Cookie mapping技术 利用javascript跨域访问cookie之广告推广

  5. 关于bottle WEB框架中签名cookie的一点理解

    首先要理解一个概念 MAC (message authenticate code) 消息认证码(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具. 构造方 ...

  6. 对Django框架中Cookie的简单理解

    概念的理解:首先Cookie和Session一样,是django中用于视图保持状态的方案之一.为什么要进行视图保留呢,这是因为浏览器在向服务器发出请求时,服务器不会像人一样,有记忆,服务器像鱼一样,在 ...

  7. session和cookie的简单理解

    0. 引子,我们为什么要cookie和session       因为http请求是无状态的(不能记录用户的登录状态等),所以需要某种机制来保存用户的登录状态等信息,在下次访问web服务的时候,不用再 ...

  8. Cookie实例,理解cookie

    一.一句话了解cookie是什么 cookie是服务端发送给客户端的.用来记录一些信息(如用户名),定制主页,聚焦广告的.最终以文件形式存在于客户端电脑磁盘下的小型文档. 二.用实例来认清cookie ...

  9. cookie路径概念理解

    .创建一个cookie并设置 cookie的有效路径: $.cookie('the_cookie', 'the_value', { expires: 7, path: '/' }); 注:在默认情况下 ...

随机推荐

  1. Flutter - flutter desktop embedding / flutter 桌面支持

    2019年5月9日,随着谷歌在IO19宣布Flutter支持Web平台,就标志着Flutter已经全面支持所有平台(移动.网页.桌面.嵌入式). 现编一个跨平台小段子: 微软Xarmarin:喵喵喵? ...

  2. 几种设计良好结构以提高.NET应用性能的方法

    写在前面 设计良好的系统,除了架构层面的优良设计外,剩下的大部分就在于如何设计良好的代码,.NET提供了很多的类型,这些类型非常灵活,也非常好用,比如List,Dictionary.HashSet.S ...

  3. 【BZOJ 2138】stone

    Problem Description 话说 \(Nan\) 在海边等人,预计还要等上 \(M\) 分钟.为了打发时间,他玩起了石子. \(Nan\) 搬来了 \(N\) 堆石子,编号为 \(1\) ...

  4. linux,发布.netcore填坑,自动升级core版本后,运行报错:'Microsoft.AspNetCore.App', version '3.0.0' was not found.

    近来有点空,所以研究下,netcore这个神器~    号称跨平台的利器,从此net不在局限于windows服务器了,早点该多好呀,这样我们net程序员,不香吗? 网上搜,‘netcore 发布liu ...

  5. js 日期时间的格式化

    将日期时间转换为指定格式,如:YYYY-mm-dd HH:MM表示2019-06-06 19:45 function dateFormat(fmt, date) { let ret; let opt ...

  6. 松软科技web课堂:随机Math.random()

    Math.random() 返回 0(包括) 至 1(不包括) 之间的随机数: 实例 Math.random(); // 返回随机数 JavaScript 随机整数 Math.random() 与 M ...

  7. angular8自定义管道、指令以及获取dom值

    版本: 1.自定义管道: example: 定义一个*ngFor 可以获取key值的管道 keyObject.pipe.ts // key value 管道 import { Pipe, PipeTr ...

  8. JS基础语法---Array对象的方法

    Array对象的方法   Array.isArray(对象)---->判断这个对象是不是数组 instanceof关键字 判断对象是不是数组类型:两种方法: //1 instanceof var ...

  9. Oracle解析逗号分隔的字符串,或者01110110101此类数据

    -- 1.提取此类数据中的1的索引位置,从1开始    例: 0001100001100 --> 4,5,10,11 create or replace function hazq_instr_ ...

  10. 浅谈——MySQL存储引擎

    博文大纲: 一.MyISAM存储引擎: 二.InnoDB存储引擎: 三.Memory存储引擎特点: 四.如何选择合适的存储引擎? 前言 数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使 ...