前端(二):浏览器本地存储 - cookie、localStorage、sessionStorage

简介: 浏览器本地存储 - cookie、localStorage、sessionStorage

cookie存储

  • cookie若不设置过期时间关闭浏览器后会自动清除数据
  • 存储限制4k
  • 同地址下其他文件也能读取到
    <form action="">
      用户名:<input type="text" id="username" value="" /> 
      密码:<input type="password" id="userpassword" value="" />
      <input type="checkbox" id="remember" onclick="rememberValue(this)">
      <label for="remember">记住账号密码</label>
    </form>
    
    ```js
    /**
    • cookie用字符串拼接即可
    • cookie后可接
    • ; path=path
    • ; domain=domain
    • ; secure
      */

/**

  • [setCookie 设置cookie]
  • @param {[String]} c_name [起个名,独一无二的名字]
  • @param {[String]} c_value [需要存的值]
  • @param {[Number]} exdays [时间/天数,设置保存时间 0时为删除]
    /
    function setCookie(c_name, c_value, exdays) {
    document.cookie = c_name + "=" + encodeURIComponent(c_value) + "; max-age=" + (exdays
    606024);// 解决符号转码
    }

/**

  • 读取cookies
  • @param {[String]} c_name [读取名字]
  • @return {[String]} [返回读取cookie的值]
    */
    function getCookie(c_name) {
    var name = c_name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
     var c = decodeURIComponent(ca[i].trim());// 解码
     if (c.indexOf(name) == 0){
         return c.substring(name.length, c.length);
     }
    
    }
    return "";
    }

// 使用示例
var username = document.getElementById("username"); // 获取input username
var userpwd = document.getElementById("userpassword"); // 获取input userpassword
var remember = document.getElementById("remember"); // 获取记住账号密码

/**

  • 点击复选框记住 账号、密码、复选框
    */
    function rememberValue() {
    if (remember.checked == true) {
     setCookie('user', username.value);// 临时
     setCookie('pwd', userpwd.value, 30);
     setCookie('remember', remember.checked, 30);
    
    } else {
     setCookie("user","",0);
     setCookie("pwd","",0);
     setCookie("remember","",0);
    
    }
    }

/**

  • 页面加载完毕后从cookie里读取值并填入相应的标签内
    */
    window.onload = function () {
    username.value = getCookie("user");
    userpwd.value = getCookie("pwd");
    remember.checked = getCookie("remember");
    }
    ```

localStorage存储

  • 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
  • localStorage与sessionStorage的区别:就是localStorage属于永久性存储,而sessionStorage属于当会话结束的时候,sessionStorage中的键值对会被清空
  • 关闭浏览器后,再打开仍有数据
  • 清除缓存加载后仍有数据
  • 同网络地址页面均能得到数据
    <form action="">
      用户名:
      <input type="text" id="username" value="" /> 密码:
      <input type="password" id="userpassword" value="" />
      <input type="checkbox" id="remember" onclick="rememberValue(this)">
      <label for="remember">记住账号密码</label>
    </form>
    
    // localStorage使用示例
    var username = document.getElementById("username"); // 获取input username
    var userpwd = document.getElementById("userpassword"); // 获取input userpassword
    var remember = document.getElementById("remember"); // 获取记住账号密码
    // 点击复选框记住 账号、密码、复选框
    function rememberValue() {
         
      if (remember.checked == true) {
         
          localStorage.setItem('user', username.value);
          localStorage.setItem('pwd', userpwd.value);
          localStorage.setItem('remember', remember.checked);
      } else {
         
          localStorage.removeItem("user");
          localStorage.removeItem("pwd");
          localStorage.removeItem("remember");
          // localStorage.clear();// 全部删除
      }
    }
    // 页面加载完毕后从localStorage里读取值并填入相应的标签内
    window.onload = function () {
         
      username.value = localStorage.getItem("user");
      userpwd.value = localStorage.getItem("pwd");
      remember.checked = localStorage.getItem("remember");
    }
    

sessionStorage存储

  • 关闭浏览器再打开将不保存数据
  • 复制标签页会连同sessionStorage数据一同复制
  • 复制链接地址打开网页不会复制seessionStorage内的数据
  • 清除缓存加载当前页对页面无影响
  1. 同源策略限制。若想在不同页面之间对同一个sessionStorage进行操作,这些页面必须在同一协议、同一主机名和同一端口下。(IE 8和9存储数据仅基于同一主机名,忽略协议(HTTP和HTTPS)和端口号的要求)
  2. 单标签页限制。sessionStorage操作限制在单个标签页中,在此标签页进行同源页面访问都可以共享sessionStorage数据。
  3. 只在本地存储。seesionStorage的数据不会跟随HTTP请求一起发送到服务器,只会在本地生效,并在关闭标签页后清除数据。(若使用Chrome的恢复标签页功能,seesionStorage的数据也会恢复)。
  4. 存储方式。seesionStorage的存储方式采用key、value的方式。value的值必须为字符串类型(传入非字符串,也会在存储时转换为字符串。true值会转换为"true")。
  5. 存储上限限制:不同的浏览器存储的上限也不一样,但大多数浏览器把上限限制在5MB以下。
<form action="">
    用户名:
    <input type="text" id="username" value="" /> 密码:
    <input type="password" id="userpassword" value="" />
    <input type="checkbox" id="remember" onclick="rememberValue(this)">
    <label for="remember">记住账号密码</label>
</form>
// sessionStorage使用示例
var username = document.getElementById("username"); // 获取input username
var userpwd = document.getElementById("userpassword"); // 获取input userpassword
var remember = document.getElementById("remember"); // 获取记住账号密码
// 点击复选框记住 账号、密码、复选框
function rememberValue() {
   
    if (remember.checked == true) {
   
        sessionStorage.setItem('user', username.value);
        sessionStorage.setItem('pwd', userpwd.value);
        sessionStorage.setItem('remember', remember.checked);
    } else {
   
        sessionStorage.removeItem("user");
        sessionStorage.removeItem("pwd");
        sessionStorage.removeItem("remember");
        // sessionStorage.clear();// 全部删除
    }
}
// 页面加载完毕后从sessionStorage里读取值并填入相应的标签内
window.onload = function () {
   
    username.value = sessionStorage.getItem("user");
    userpwd.value = sessionStorage.getItem("pwd");
    remember.checked = sessionStorage.getItem("remember");
}

测试浏览器的存储上限

http://dev-test.nemikor.com/web-storage/support-test/

目录
相关文章
|
28天前
|
存储 缓存 前端开发
Web端IM聊天消息该不该用浏览器本地存储?一文即懂!
鉴于目前浏览器技术的进步(主要是HTML5的普及),在Web网页端IM聊天应用的技术选型阶段,很多开发者都会纠结到底该不该像原生移动端IM那样将聊天记录缓存在浏览器的本地,还是像传统Web端即时通讯那样继续存储在服务端?本文将为你简洁明了地讲清楚浏览器本地存储技术(Web Storage),然后你就知道到底该怎么选择了。
29 1
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
2月前
|
存储 前端开发 API
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
前端开发中,Web Storage的存储数据的方法localstorage和sessionStorage的使用及区别
131 0
|
3月前
|
存储 编解码 JSON
解决浏览器存储问题,不得不了解的cookie、localStorage和sessionStorage
该文章详细对比了浏览器存储机制中的cookie、localStorage和sessionStorage的不同之处,以及各自的适用场景。
|
4月前
|
存储 JavaScript 程序员
Vue学习之---浏览器本地存储(8/17)
这篇文章介绍了Vue中浏览器本地存储的使用方法,包括基础知识、localStorage和sessionStorage的代码实例及其测试效果,并提供了相关的API和操作示例。
Vue学习之---浏览器本地存储(8/17)
|
5月前
|
存储 前端开发 安全
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第2天】探索Web存储:localStorage持久化,sessionStorage会话限定,cookies则伴随HTTP请求。了解它们的特性和限制,如localStorage的5MB容量限制、跨域问题,sessionStorage的生命周期,及cookies的安全与带宽消耗。使用时需权衡安全、效率与应用场景。示例代码展示存储与检索方法。
360 2
|
5月前
|
存储 JavaScript 前端开发
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第8天】Web开发中的客户端存储技术,如`localStorage`, `sessionStorage`和`cookies`,用于保存用户设置和跟踪活动。`localStorage`持久化存储,`sessionStorage`随页面会话消失。两者提供基本的增删查改操作,但有大小限制和安全风险。`cookies`适合会话管理,可设置过期时间并能跨域。使用时注意存储量、安全性和跨域策略,选择适合场景的存储方式。
249 0
|
5月前
|
存储 Web App开发 JavaScript
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
248 0
|
2月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
189 2
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
55 0