【学習ログ】MDN JavaScript チュートリアル (16 回目)
はじめに
この記事は、JavaScript チュートリアルの学習ログです。
学習したもの
MDN にある JavaScript のチュートリアルを学習しました。
MDN JavaScript コーナー
┃
┗ チュートリアル
┣ 完全な初心者向け
┃
┣ 中級者向け
┃ ┣ クライアントサイド Web API
┃ ┃ ┣ Web API の紹介
┃ ┃ ┣ 文章の操作
┃ ┃ ┣ サーバからのデータ取得
┃ ┃ ┣ サードパーティ API
┃ ┃ ┣ 絵を描く
┃ ┃ ┣ 動画と音声の API
┃ ┃ ┗ クライアント側でのデータ保存(本日の学習箇所)
┃ ┃
┃ ┣ JavaScript 「再」入門
┃ ┣ JavaScript のデータ構造
┃ ┣ 等価比較と同一性
┃ ┗ クロージャ
┃
┗ 上級者向け
概要
チュートリアルで習った事の概要は下記の通りです。
クライアント側でのデータ保存
アプリケーション・データを保存するためのクライアント側のストレージ API の使い方 を学習する。
ノート・メモ
クライアント側でのデータ保存
- クライアント側での保存は、クライアント上に (つまりユーザーのマシン上に) データを保存して必要なときにそのデータを取得できるようにしてくれる、 いくつかの JavaScript API から構成されています。
旧式な方法: クッキー
- クライアント側での保存という考え方には、長い歴史があります。ウェブの初期から、 ウェブサイト上でのユーザー体験を個別化するための情報を記憶するべく、サイトは クッキーを使ってきました。そうしたクッキーは、ウェブ上で一般的に使われるクラ イアント側での保存の、最初期の形式です。
その古さゆえに、クッキーには、技術的にもユーザー体験の観点からも厄介ごとを もたらす、多くの問題があります。
初回のサイト訪問時に、欧州在住者は、自分についてのデータを保存するための クッキーを自分が使うことになるかどうかを知らせてくるメッセージを見せられる 羽目になるのです。(EU クッキー指令による)
上記の問題以外にも、時代遅れである事・複数のセキュリティ問題・複雑なデータを 保持できない事があげられる。
数多くの問題点と現在はより良い・よりモダンな方法がある事からクッキーはチュートリアルでは取り上げないとのこと。
クッキーにある唯一の利点は、極めて古いブラウザーでもサポートされているということです。そのため、すでに廃れたブラウザー (Internet Explorer 8 またはそれ以前のバージョンなど) をサポートすることをプロジェクトが要求している場合には、依然としてクッキーが有用かもしれません。
新しい方法
Web Storage API は、名前とそれに対応する値とからなる小規模なデータ項目を保存したり取り出したりするための、とても簡潔な構文を提供しています。これは、ユーザーの名前、ユーザーがログインしているかどうか、画面の背景にどの色を使うべきか、といったような、何らかの単純なデータを記憶するだけでよい場合に有用です。
IndexedDB API は、複雑なデータを保存するための完全なデータベース・システムをブラウザーに提供しています。これは、顧客レコードの完全な集合から、音声ファイルまたは動画ファイルのような複雑なデータ型にいたるまでの、種々の物事に対して使えます。
IndexedDB API
サービスワーカー
ただ単に置いてあって、特定のオリジン (ウェブサイト、または、あるドメインにあるウェブサイトの一部) に対して、そこにブラウザでアクセスした際に登録される、JavaScript ファイルのことです。
登録されれば、サービスワーカーは、当該オリジンで利用可能なページを制御できます。サービスワーカーは、ロードされたページとネットワークとの間に位置して、当該オリジン宛のネットワーク要求を横取りすることにより、こうした制御を行います。
サービスワーカーが要求を横取りすると、その要求に対して望むことは何でも行えます。典型例では、ネットワーク応答をオフラインに保存しており、その後、要求に応じて、ネットワークからの応答の代わりに、保存してあるそれらの応答を提供しています。これによって事実上、ウェブサイトを完全にオフラインで機能させることが可能になります。
キャッシュ API
- クライアント側での保存のもう一つの仕組みですが、これにはちょっとした相違点があります。キャッシュ API は HTTP 応答を保存するように設計されているのです。そのため、サービスワーカーと一緒に使うと、とてもうまく機能します。
分かった事
- Web Storage API(localStorage)の簡単な使い方が分かった気がします。
分からなかった事
- IndexedDB , サービスワーカー, キャッシュ API について、内容が今の私には高度すぎて分からなかったです。
まとめ
全体的に高度な内容になっており、すごく難しかったです。(どんどん自信がなくなる)
次のチャプター「JavaScript 「再」入門」以降は、JavaScript の基礎部分を詳細に見ていく事になるようです。
最後までご覧頂きありがとうございました。