勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

JavaScriptでオブジェクトをzlib圧縮してCookieに保存できる「zcookies」ライブラリの利用方法

  JavaScript

あるシステムでCookieを保存している部分があった。ただ、日本語を保存している筈なのにブラウザの開発者ツールで確認するとランダム英数字で保存されていた。どうも「zcookies」というライブラリを使用しているようで、こちらはzlib圧縮してCookie保存⇔展開できるというライブラリみたい。以下に利用方法のメモ。

 

zcookies

GitHub

https://github.com/ukyo/zcookies

読み込み方法

CDNは無いっぽいのでこちらのページからzcookies.min.jsをダウンロードし、適当なディレクトリにアップロードすること。

特長・メリット

  • zlib圧縮されるためより多くのデータが保存できる。
  • オブジェクトをそのまま保存できる(js-cookieだとjson等に変換してから保存する必要あり)。
  • 保存されるデータの見た目がランダム英数字なので多少はセキュリティ対策になるかも?

 

利用方法

ソースコード

<script>
const data = {
    name: '田中', 
    age: 20,
};
zcookies.set('data', data); //data:"a1qSl5ibuuz5lA1PdqxdnJieKgIA"

const cookie = zcookies.get('data');
console.log(cookie); //Object { name: "田中", age: 20 }
</script>

解説等

コメントにも書いているがCookieを保存すると「a1qSl5ibuuz5lA1PdqxdnJieKgIA」というデータが保存される。展開すると元のオブジェクトして利用できる。

オプション項目

Cookie保存時のオプション項目はこちらのページを参照すること。

 - JavaScript

  関連記事

Dexie.jsを利用してIndexedDBを取り扱う方法

IndexedDBを用いて色々するという案件を見かけたが、そもそもIndexed ...

JavaScriptで画像読み込み完了のタイミングを検知する「imagesLoaded」ライブラリの利用方法

大き目のサイズの画像をページに設置すると読み込み完了まで時間がかかる。その画像が ...

JavaScriptでランダムなカラーコードを生成する「RandomColor」ライブラリの利用方法

先日PHPでランダムなカラーコードを生成する「RandomColor.php」ラ ...

ブラウザ上で画像の切り抜き等編集を行う方法(Cropper.js)

あるサイトで画像をアップロードし、その画像に対してブラウザ上で切り抜き等トリミン ...

JavaScript / PHPにて「lz-string」を用いてデータの圧縮・展開する方法

文字数が多いGETパラメータを送信したいというケースがあった。また、送信側はJa ...