setSharedData
Description
アプリ実行中にグローバルに共有されるインメモリデータを保存します。
保存したデータは、アプリが実行されている間はどのページ・スクリプトからでも$app.getSharedData(key)で読み取れます。アプリが終了すると消えます(非永続)。
dataにnullを渡すと、そのキーが削除されます。
Parameters
| パラメーター | 型 | 説明 |
|---|---|---|
| sharedKey | String | データを識別するキー名 |
| data | dynamic | 保存する値。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の比較
| 区分 | setSharedData | setStoreData | setVar |
|---|---|---|---|
| 保存場所 | アプリプロセスのメモリ | ディスク(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のみ変更可能
Related
$app.getSharedData(sharedKey)$app.setStoreData(key, data)$app.getStoreData(key)$app.setVar(appVarName, data)$app.getVar(appVarName)