質問は解決していますが、
「この条件下では何を選ばなければならないか」へのフォーカスに対しての回答は少なさそうなのでぶら下げておきます。
- 情報量
- 失うとどれほどのダメージがあるのか
- 生存期間はどれほどのものか
- 誰に共有出来るべきか
- 公開しても良いものか、秘密にしなければならないのか
質問文の候補に上がっているクッキー、ローカルストレージは下記の共通点があります。
- 保存出来る量は少なめ
- 生存期間は短く、数ヶ月でほぼ確実になくなってしまう
- ブラウザに保存する(PC・スマホ間での共有が出来ない、他人に見せられない)
クッキーはdocomo社が出していたいわゆるガラケーに備わっている、
i-modeというブラウザには存在しませんが、そんなマイナーなブラウザ以外はほぼ全てに対応しています。
他にもローカルストレージは多くのブラウザに採用されており比較的安牌です。
それ以外はブラウザに保存する仕組みで汎用的な機能は選択肢は無いと思った方が良いですね。
スマホなら絶対に入っているChromeやSafari狙い撃ちで特定の機能に特化させる選択肢はあると思います。
業務で使っているならブラウザの縛りを入れておけばあまり問題にはならないと思います。
クッキー、ローカルストレージの機能について見ていきましょう。
これらは確かに「永続」という名目で保存は出来ます。
しかし、ブラウザが更新されたり、汚れてるので綺麗にしたりという形で、何らかの形で消去されやすい存在です。
質問文のようなチェック状態が「保存されると便利かもしれない」程度のものなら兎も角、
何かのはずみで消えてしまうとユーザーが絶望するようなレベルの情報は絶対に保存してはなりません。
情報量は少ないが、永続化・公開化できれば良いとならば
「GETパラメータ」で解決できます。
例えばゲームのステータス計算機なんかで、
他人にこういうセッティングにすると強いよと教えたいみたいなケースでは、
URLの?
以降に情報を載せまくって、ページをロードしたらそこの文字列を読み取って復元させるというケースで主に利用されています。
数百文字くらいしか保存出来ませんので、活用する際はID振って少ない文字列で収まるような工夫を入れましょう。
それ以外のクッキー、ローカルストレージでは解決できなさそうな全ての問題は
基本的にはWebサーバに「POST」で情報を送信して、Webサーバ上に保存するやり方になります。
掲示板、ブログ、SNS、ゲームの成績なんかは仕組み上、
不特定多数から集めた情報を保管して、また不特定多数にくばる必要がありますね。
今まで挙げた選択肢では絶対に解決出来ません。
クライアントサイドでやっているように見せかけるという手法は存在します。
「Ajax通信」を利用して後付けで情報を取得してページを書き換える手法です。
JavaScriptにはXMLHttpRequestやFetch APIといった機能が存在します。
これらの機能を活用し、裏でHTTP通信を投げるという機能ですが、結果を文字列で受け取り、文字列に従ってページを更新出来るよという考え方です。
実際に利用する際は、自前でAjax通信を待ち受ける専用Webサーバ(REST API)を用意するのがスタンダードですが、
今回の件はWebサーバを建てる程の事か?メンテナンスが面倒……
というケースの為にAWSやGoogleのクラウドサービスである
S3やLambda、Firebase
を採用して使った分だけお金を支払うケースは多いですね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/09 04:44
2020/03/09 05:11
2020/03/09 22:34
2020/03/09 22:48
2020/03/09 23:10