前端(二):浏览器本地存储 - 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/

目录
相关文章
|
1月前
|
前端开发
调试前端时,在浏览器上修改参数并重新调用接口
有时候我们的页面点击过了,但是接口出问题,想修改参数再调用一次,一般是用apiPost工具把接口复制,再加上token和参数,但是这样非常的效率比较低。
42 0
|
27天前
|
存储 缓存 JavaScript
cookie、localStorage 和SessionStorage的区别和特点?
cookie、localStorage 和SessionStorage的区别和特点?
12 0
|
13天前
|
存储 JavaScript 前端开发
JavaScript中的cookie、localStorage的区别和特点
JavaScript中的cookie、localStorage的区别和特点
19 6
|
15天前
|
存储 JavaScript 前端开发
JavaScript DOM 操作:解释一下 cookie、sessionStorage 和 localStorage 的区别。
Cookie是服务器发送至客户端的文本信息,会随每个请求发送回服务器,适合控制会话状态但可能暴露隐私。SessionStorage仅在当前会话中存储数据,关闭浏览器后清除,适合临时存储如登录状态。LocalStorage则持久保存数据,即使关闭浏览器也不会清除,适用于存储长期设置。三种方式各有侧重,应按需求选择。
16 0
|
17天前
|
监控 前端开发 JavaScript
如何使用浏览器调试前端代码?
【4月更文挑战第11天】前端开发中,浏览器调试是关键技能,能提升代码质量。本文介绍了如何使用浏览器的调试工具:1) 打开调试窗口(F12或右键检查);2) Elements标签页检查DOM结构和样式;3) Console调试JavaScript,查看日志和错误信息;4) Sources设置断点调试JS文件;5) 利用Network、Performance和Memory等标签页优化性能。熟悉调试工具、利用日志和错误信息能有效定位问题,提高开发效率。
42 7
|
23天前
|
存储 缓存
浏览器缓存sessionStorage、localStorage、Cookie
浏览器缓存sessionStorage、localStorage、Cookie
31 1
|
1月前
|
前端开发 JavaScript 程序员
推荐给前端程序员的5款浏览器插件
推荐给前端程序员的5款浏览器插件
|
1月前
|
SQL 存储 JavaScript
前端浏览器调试详解版
前端浏览器调试详解版
57 0
|
2月前
|
消息中间件 JavaScript 前端开发
前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)
前端秘法进阶篇----这还是我们熟悉的浏览器吗?(浏览器的渲染原理)
|
6月前
|
Web App开发 前端开发 JavaScript