PWA 技术的本地存储之 Cookies 和 localStorage 的使用

面试官:小伙子,你的代码为什么这么丝滑?

PWA(Progressive Web App)技术是一种新型的 Web 应用开发技术,能够将 Web 应用程序打造成类似于本地应用程序的体验。PWA 技术能够在浏览器中离线访问、支持推送通知、在主屏幕上创建快捷方式等。然而,在离线状态下使用时,怎么才能保证数据的完整性呢?这就需要用到本地存储技术。本文将介绍两种常见的本地存储技术:Cookies 和 localStorage,同时详细指导如何使用。

Cookies 的使用

Cookies 是一种存储于用户计算机上的小文件,用于存储 Web 服务器和浏览器之间的数据。Cookies 可以是临时的也可以是永久的,可存储许多不同类型的数据,在 Web 应用程序中,Cookies 最常用于存储用户偏好、购物车信息等。

写入 Cookies

写入 Cookies 的方式是通过设置 document.cookie 属性。Cookies 是存储在浏览器里的,因此对于允许启用 Cookies 的大多数浏览器,该属性可以为字符串。下面的示例代码演示了如何通过 JavaScript 写入 Cookies。

-- -- ------
--------------- - -------------- ---- ------------ -- --- ---- -------- ---- --------

上述代码中,我们设置了一个名为 username 的 Cookie,它的值为 John Doe,过期时间为 2023 年 12 月 18 日。path=/ 表示该 Cookie 可以在整个网站中使用。

读取 Cookies

读取 Cookies 的方式是通过 document.cookie 属性。当您读取 Cookie 时,该属性将返回所有 Cookie 的名称和值。下面的示例代码演示了如何读取 Cookies。

-- -- ------
--- - - ----------------

Cookie 的限制

有一些限制应该注意:

  • Cookies 的大小限制为 4 KB。大多数浏览器会对存储超出该限制的 Cookies 进行截断。
  • Cookies 有数量限制。每个域名下最多可以存储 20 个 Cookies,每个 Cookies 的大小最多为 4 KB。
  • Cookies 不是很安全,在不加密的情况下可以直接被读取。

localStorage 的使用

localStorage 是 HTML5 中的新功能,能够在浏览器中存储键-值对。它类似于 Cookies,但更安全可靠,而且存储容量更大。

写入 localStorage

写入 localStorage 的方式是通过设置 localStorage 对象。下面的示例代码演示了如何通过 JavaScript 写入 localStorage。

-- -- ------------
-------------------------------- ----- ------

上述代码中,我们设置了一个名为 username 的键,它的值为 John Doe。

读取 localStorage

读取 localStorage 的方式是通过 localStorage 对象。当您读取键时,localStorage 将返回该键的值。下面的示例代码演示了如何读取 localStorage。

-- -- ------------
--- - - ---------------------------------

删除 localStorage

删除 localStorage 的方式是通过 removeItem() 方法。下面的示例代码演示了如何删除 localStorage。

-- -- ------------
------------------------------------

localStorage 的限制

localStorage 适用于浏览器中的本地存储,可以存储大量的数据,但还是存在一些限制:

  • 存储数据的大小限制为一般为 5MB。
  • localStorage 是使用的同源策略。只能在相同的域和端口下进行访问。
  • localStorage 不是很安全,在不加密的情况下可以直接被读取。

结论

本文介绍了 PWA 技术中的本地存储技术:Cookies 和 localStorage,并详细说明了它们的使用方法。 Cookies 和 localStorage 都有各自的优缺点。Cookies 是 Web 应用程序中最广为人知的解决方案之一,但它的大小有限制,而且对于保密信息不是很安全。而 localStorage 具有更大的存储容量,更为安全,但使用同源策略导致了访问范围的限制。因此,在 PWA 开发中选用何种本地存储技术应根据具体的业务需求进行选择。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/67041755d91dce0dc84d7f54


猜你喜欢

  • 在 Angular 应用程序中实现 Google Maps 集成

    Google Maps 是一项非常强大和受欢迎的服务,它允许我们在网站或应用程序中显示地图和位置数据。借助 Angular,我们可以轻松地将 Google Maps 集成到我们的应用程序中。

    10 天前
  • Redis 性能评测与对比分析

    前言 Redis 是一种高性能的键值存储系统,常用于缓存、消息队列、实时应用等场景。随着业务规模的扩大和数据量的增加,如何评测和对比 Redis 在不同场景下的性能表现变得越来越重要。

    10 天前
  • Custom Elements 教程:解析其与其他技术的关联

    前言 在现代 Web 开发中,组件化开发已经非常普遍了。而 Custom Elements 则提供了一种新的途径来创建自定义 Web 组件。Custom Elements 允许开发者自定义一个新的 H...

    10 天前
  • React 单元测试:使用 Enzyme 测试 Redux-connected 组件

    React 是一个非常流行的前端开发框架,而 Redux 则是一种流行的状态管理解决方案。在 React 中,我们通常会将一些组件与 Redux 进行连接,以便在组件中使用 Redux 中的状态。

    10 天前
  • TypeScript 中常用的工具库和框架

    引言 TypeScript 是一种开源的编程语言,它是 JavaScript 语言的一个超集,可以编译成纯 JavaScript 代码。它提供了静态类型检查、类、接口等面向对象的特性,使得前端开发更加...

    10 天前
  • 使用 Mocha 和 Chai 测试 Angular.js 服务

    Angular.js 是一款非常流行的前端框架,它可以帮助我们快速搭建 SPA(Single Page Application,单页应用)应用程序。在 Angular.js 中,服务(Service)...

    10 天前
  • 实现全球化无服务器应用程序

    介绍 无服务器应用程序具有弹性、可伸缩性、可扩展性和可靠性等优势,因此在当今云计算环境中越来越受欢迎。但是,实现全球化无服务器应用程序并不容易,需要考虑到各种语言和区域的本地化和国际化需求。

    10 天前
  • 无障碍技术在智能交通系统中的应用

    前言 在当今的社会中,人工智能和物联网等领域的发展迅速,智能交通系统作为其中的一种,已经渐渐走进了我们的生活。然而,智能交通系统往往被缺乏对残障人士的关注和照顾,导致残障人士在使用智能交通系统时会面临...

    10 天前
  • Babel 编译后代码出现正则表达式匹配错误的解决方法

    在前端开发中,Babel 是一个常用的工具,可以将 ES6 代码转换成浏览器可以识别的 ES5 代码。然而,在使用 Babel 进行编译时,有时候会出现正则表达式匹配错误的问题。

    10 天前
  • Vue.js 中如何使用 Media Query 实现响应式布局

    在现代前端开发中,响应式布局已经成为网站和移动应用设计的标准。它允许我们根据不同的屏幕尺寸和设备类型来优化用户体验,并提升整个应用的可用性。在本文中,我们将介绍如何在 Vue.js 中使用 CSS M...

    10 天前
  • 如何避免 Tailwind CSS 样式冲突的问题?

    在前端开发中,为了减少 CSS 的编写量,提高样式的复用性,越来越多的开发者开始使用工具库来帮助自己快速编写样式。而 Tailwind CSS 就是其中一个非常受欢迎的工具库,其提供了丰富的类名,可以...

    10 天前
  • 使用 Express.js 实现 OAuth 认证

    OAuth 是一种常见的认证授权协议,用于保护 Web 应用程序中的数据和资源,为用户提供登录和授权的方式。在今天的 Web 应用程序中,OAuth 已经成为了一种必不可少的技术。

    10 天前
  • 在 ES10 中使用 try catch 的技巧

    在前端编程过程中,我们往往需要处理各种异常,以确保我们的代码能够正常运行。为了实现这个目标,我们可以使用 try catch 语句。在 ES10 中,我们可以使用一些技巧来更好地利用这个语句。

    10 天前
  • Web Components 如何在低时延、高吞吐率的环境下实现快速渲染?

    Web Components 是一项已经有一段时间的技术,它可以让前端开发者更加方便地复用和组合 UI 组件。然而,在低时延、高吞吐率的环境下,Web Components 的渲染速度可能会受到影响。

    10 天前
  • 解决 CSS Grid 在 Firefox 中出现的失效问题与兼容性问题

    CSS Grid 布局是一种相当强大的网格布局系统,可以帮助前端开发人员更方便地实现复杂的布局。然而,在 Firefox 浏览器中,CSS Grid 可能会遇到失效问题和兼容性问题。

    10 天前
  • ES6 语法糖:解析箭头函数的各种用法

    在现代前端开发中,JavaScript 语言越发地被广泛应用。ES6 是 JavaScript 语言的一个重要版本,其中的箭头函数(Arrow Functions)被称为语法糖,用途广泛且易学易用。

    10 天前
  • Redis 应用:图像处理任务调度实现

    Redis 是一个内存中的数据结构存储系统,广泛应用于各种领域中,其中包括任务调度。在本文中,我们将介绍如何使用 Redis 实现图像处理任务的调度,并提供示例代码。

    10 天前
  • Fastify 安全指南:使用 fastify-helmet-plus 插件更好的保护应用

    随着网络安全问题的日益严重,前端应用程序的安全性也变得越来越重要。Fastify 是一个快速和低开销的 Node.js web 框架,它具有许多内置的安全机制来保护应用。

    10 天前
  • Node.js 中使用 Throng 进行进程管理

    Node.js 中使用 Throng 进行进程管理 在现代 web 应用开发中,Node.js 作为一种优秀的后端开发语言受到广泛的欢迎。Node.js 提供了很好的性能和可扩展性,但是在处理高流量网...

    10 天前
  • 在使用 LESS 编写样式时,如何统一文本字号

    LESS是一种CSS预处理器,可以让我们编写更加易于维护和复用的样式。在使用LESS编写样式时,如何统一文本字号是一个非常重要的问题。本文将介绍如何使用LESS来统一文本字号,包括实际使用中的示例代码...

    10 天前

相关推荐

    暂无文章