Pure Javascript - 将对象存储在 cookie 中

在前端开发中,有时需要将一些数据保存在客户端的 cookie 中。然而,由于 cookie 只能存储字符串类型的数据,我们需要将对象序列化为字符串再存储。本文将介绍如何使用纯 JavaScript 技术将对象存储在 cookie 中,并提供一个示例代码。

1. 序列化和反序列化

JavaScript 提供了两个方法,用于将对象序列化和反序列化成字符串:

  • JSON.stringify(obj):将 JavaScript 对象转换为 JSON 字符串。
  • JSON.parse(str):将 JSON 字符串转换为 JavaScript 对象。

这两个方法非常方便,可以帮助我们将对象转换为字符串后存储到 cookie 中,并在需要时将其重新转换为 JavaScript 对象。

2. 存储对象到 cookie

要将对象存储在 cookie 中,我们需要执行以下步骤:

  1. 使用 JSON.stringify 方法将对象转换为字符串。
  2. 使用 encodeURIComponent 方法对字符串进行编码,以便在 cookie 中正确存储。
  3. 将编码后的字符串赋值给 cookie 的值属性。
  4. 设置 cookie 的过期时间或过期日期。

下面是一个示例函数,它接受一个对象和一个可选的过期时间(单位为秒),并将该对象存储为 cookie:

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

3. 从 cookie 中读取对象

要从 cookie 中读取存储的对象,我们需要执行以下步骤:

  1. 使用 decodeURIComponent 方法对 cookie 的值进行解码。
  2. 使用 JSON.parse 方法将字符串转换为 JavaScript 对象。

下面是一个示例函数,它接受一个 cookie 名称,并返回该 cookie 存储的对象。如果找不到该 cookie,则返回 null:

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

4. 示例代码

下面是一个完整的示例,它演示了如何使用上述函数将对象存储在 cookie 中,并从 cookie 中读取该对象:

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

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

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

5. 总结

在本文中,我们介绍了如何使用纯 JavaScript 技术将对象存储在客户端的 cookie 中。通过序列化和反序列化 JavaScript 对象,我们可以轻松地将复杂的数据类型存储在 cookie 中。这对于需要在不同页面之间共享数据的应用程序非常有用。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/29106