JavaScript本地存储的几种方式小结

 更新时间:2024年12月11日 11:04:13   作者:AitTech  
在 JavaScript 中,本地存储指的是将数据保存在用户的浏览器中,能够在页面刷新或关闭后仍然保留,本文给大家介绍了本地存储的几种方式,每种存储方式的特点、区别及应用场景,需要的朋友可以参考下

在JavaScript中,有几种常用的方式可以在本地存储数据。以下是主要的几种本地存储方式:

  • LocalStorage:

    • 描述: LocalStorage 是 Web Storage API 的一部分,用于在用户的浏览器中存储键值对。数据不会过期,除非用户明确删除。
    • 用法:
// 存储数据
localStorage.setItem('key', 'value');

// 获取数据
const value = localStorage.getItem('key');

// 移除数据
localStorage.removeItem('key');

// 清除所有数据
localStorage.clear();

SessionStorage:

  • 描述: SessionStorage 也是 Web Storage API 的一部分,与 LocalStorage 类似,但它存储的数据在页面会话结束时(如用户关闭浏览器标签页)会被清除。
  • 用法:
// 存储数据
sessionStorage.setItem('key', 'value');

// 获取数据
const value = sessionStorage.getItem('key');

// 移除数据
sessionStorage.removeItem('key');

// 清除所有数据
sessionStorage.clear();

Cookies:

  • 描述: Cookies 是小块的数据,由浏览器存储在用户的计算机上。它们通常用于存储会话信息或用户偏好设置,并会在每次请求时发送到服务器。
  • 用法:
// 设置 Cookie
document.cookie = "username=John Doe; expires=Fri, 31 Dec 2023 23:59:59 GMT; path=/";

// 读取 Cookie
function getCookie(name) {
  let cookieArr = document.cookie.split(";");

  for(let i = 0; i < cookieArr.length; i++) {
    let cookiePair = cookieArr[i].split("=");

    if(name == cookiePair[0].trim()) {
      return decodeURIComponent(cookiePair[1]);
    }
  }

  return null;
}

const username = getCookie("username");

// 删除 Cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";

IndexedDB:

  • 描述: IndexedDB 是一种低级 API,用于在用户的浏览器中存储大量结构化数据。它类似于 SQL 数据库,但使用的是事务性数据库模型。
  • 用法:
// 打开数据库
let request = indexedDB.open("myDatabase", 1);

request.onupgradeneeded = function(event) {
  let db = event.target.result;
  let objectStore = db.createObjectStore("customers", { keyPath: "id" });
};

request.onsuccess = function(event) {
  let db = event.target.result;

  // 添加数据
  let transaction = db.transaction(["customers"], "readwrite");
  let objectStore = transaction.objectStore("customers");
  let customer = {id: 1, name: "John Doe", age: 30};
  objectStore.add(customer);

  // 读取数据
  let transaction = db.transaction(["customers"]);
  let objectStore = transaction.objectStore("customers");
  let request = objectStore.get(1);

  request.onerror = function(event) {
    console.log("Unable to retrieve data");
  };

  request.onsuccess = function(event) {
    if (request.result) {
      console.log(request.result.name);
    } else {
      console.log("No data found");
    }
  };
};
  1. Web SQL (已废弃):

    • 描述: Web SQL 是一种早期的本地数据库技术,但已经不被推荐使用,并且在现代浏览器中逐渐被淘汰。
    • 用法: 不推荐使用,建议使用 IndexedDB 作为替代。

这些技术各有优缺点,选择哪一种取决于具体的应用场景和需求。对于简单的键值对存储,LocalStorage 和 SessionStorage 是很好的选择;对于需要存储更复杂和大量数据的情况,IndexedDB 更加合适;而 Cookies 则通常用于存储需要在服务器和客户端之间共享的信息。

以上就是JavaScript本地存储的几种方式小结的详细内容,更多关于JavaScript本地存储方式的资料请关注脚本之家其它相关文章!

相关文章

  • javascript时间戳和日期字符串相互转换代码(超简单)

    javascript时间戳和日期字符串相互转换代码(超简单)

    下面小编就为大家带来一篇javascript时间戳和日期字符串相互转换代码(超简单)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • 深入理解JavaScript系列(12) 变量对象(Variable Object)

    深入理解JavaScript系列(12) 变量对象(Variable Object)

    JavaScript编程的时候总避免不了声明函数和变量,以成功构建我们的系统,但是解释器是如何并且在什么地方去查找这些函数和变量呢
    2012-01-01
  • typescript基本数据类型HTMLElement与Element区别

    typescript基本数据类型HTMLElement与Element区别

    这篇文章主要为大家介绍了typescript基本数据类型HTMLElement与Element区别详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • 利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解

    利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解

    这篇文章主要给大家介绍了关于利用canvas中toDataURL()将图片转为dataURL(base64)的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-11-11
  • js控制input框只读实现示例

    js控制input框只读实现示例

    控制input框只读可以防止用户对数据的更改,在某些情况下还是比较实用的,下面使用js来完成这个只读实现
    2014-01-01
  • xmlHTTP返回值重编码的优化

    xmlHTTP返回值重编码的优化

    xmlHTTP返回值重编码的优化...
    2006-11-11
  • Typescript实现栈的方法示例

    Typescript实现栈的方法示例

    本文主要介绍了Typescript实现栈的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • JavaScript的Set数据结构详解

    JavaScript的Set数据结构详解

    这篇文章主要为大家介绍了JavaScript的Set数据结构,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-01-01
  • js禁止表单重复提交

    js禁止表单重复提交

    这篇文章主要介绍了js禁止表单重复提交的方法,避免重复记录带来的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 原生JS实现图片翻书效果

    原生JS实现图片翻书效果

    本文给大家分享一段js代码实现图片翻书效果,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-02-02

最新评论