メインコンテンツまでスキップ

setSharedData

Description

アプリ実行中にグローバルに共有されるインメモリデータを保存します。

保存したデータは、アプリが実行されている間はどのページ・スクリプトからでも$app.getSharedData(key)で読み取れます。アプリが終了すると消えます(非永続)。

datanullを渡すと、そのキーが削除されます。

Parameters

パラメーター説明
sharedKeyStringデータを識別するキー名
datadynamic保存する値。nullならそのキーを削除

Returns

void

Notes

  • データはアプリプロセスのメモリ上にのみ存在し、アプリ再起動時に初期化されます。
  • すべてのページが同じメモリマップを共有するため、ページ間のデータ受け渡しに適しています。
  • 永続的な保存が必要な場合は$app.setStoreData()を使用してください。
  • Studioで定義したApp Variableを変更するには$app.setVar()を使用してください。
  • 値の型に制限はありません — 文字列、数値、オブジェクト、配列のいずれも保存できます。

Example

// ログイン後にユーザー情報をグローバルに保存
$app.setSharedData("currentUser", { id: 1, name: "홍길동", role: "admin" });

// 別のページで読み取る
var user = $app.getSharedData("currentUser");
console.log(user.name); // "홍길동"

// キーを削除(ログアウト時)
$app.setSharedData("currentUser", null);

setSharedData vs setStoreData vs setVarの比較

区分setSharedDatasetStoreDatasetVar
保存場所アプリプロセスのメモリディスク(LucyStorage)App Variableシステム(LucyVarMngr)
永続性アプリ終了時に消滅アプリ再起動後も保持アプリ終了時に消滅
定義方法コード内で自由にキーを指定コード内で自由にキーを指定Studioで事前に定義が必要
読み取り関数$app.getSharedData(key)$app.getStoreData(key)$app.getVar(name)
削除方法null値を渡すnull値を渡す値の変更のみ可能
主な用途ページ間の一時データ共有ユーザー設定、ログイントークンなどの永続保存Studio UIと連動したApp Variableの制御
速度速い(メモリ)比較的遅い(ディスクI/O)速い(メモリ)

どれを使うべきか

  • セッションデータ、ページ間の受け渡しsetSharedData — 高速で手軽、アプリ終了時に自動で消滅
  • 設定値、ログイン状態、お気に入りsetStoreData — アプリ再起動後も値を保持する必要がある場合
  • Studio UIのApp Variable更新setVar — Studioで事前に宣言したVariableのみ変更可能
  • $app.getSharedData(sharedKey)
  • $app.setStoreData(key, data)
  • $app.getStoreData(key)
  • $app.setVar(appVarName, data)
  • $app.getVar(appVarName)