apex.storageネームスペース
apex.storageネームスペースには、Cookieやセッション・ストレージなど、ブラウザの格納機能に関連する機能がすべて含まれます。
- ローカルおよびセッション・ストレージについて
- apex.storage.getCookie
- apex.storage.hasLocalStorageSupport
- apex.storage.getScopedLocalStorage
- apex.storage.getScopedSessionStorage
- apex.storage.hasSessionStorageSupport
- apex.storage.setCookie
親トピック: JavaScript API
ローカルおよびセッション・ストレージについて
ローカル・ストレージとセッション・ストレージをまとめてWebストレージと言います。ソース(Webサイト)に対応するキー/値ペアを安全に格納するブラウザ機能です。キーと値は文字列です。Webストレージのストレージ容量は、Cookieより大きいものの、無制限ではありません。Cookieと比べたもうひとつの利点は、キー/値ペアがリクエストごとに送信されないことです。
ローカル・ストレージもセッション・ストレージも、名前/値ペアを設定、取得、削除する際に同じAPIを使用します。違いは、セッション・ストレージがセッション終了時に消えてしまうのに対して、ローカル・ストレージはブラウザの再起動後でも使用できるということです。ローカル・ストレージに格納されるデータは、ユーザーの判断で自由にブラウザから制限または削除できます。サーバーに格納されるデータとは異なり、ローカル・ストレージは異なるマシン上のブラウザ間でも、あるいは同じマシン上の異なるブラウザ間でも共有されません。
APEXは、複数のアプリケーションや複数のワークスペース、さらには複数のワークスペースで実行される同じアプリケーションのインスタンスもサポートしているため、Webストレージの使用時に競合が発生する可能性もあります。単一のAPEXインスタンス(単一のソース、またはWebサイト)からのアプリケーションはすべて、同じWebストレージ領域を共有するからです。apex.storage.getScopedLocalStorageとapex.storage.getScopedSessionStorageでは、アプリケーションIDと、オプションで追加される情報(ページID、リージョンIDなど)に基づいて、ストレージをスコープにパーティション化することで、この問題を解決しています。スコープは、すべてのストレージ・キーに接頭辞を付けて作成します。こうすると、異なるアプリケーションや、同じアプリケーションの異なるインスタンスが同じキーを使用する場合に競合が回避されますが、これが安全なパーティションになるわけではありません。機密情報をWebストレージに格納する前に、このような点を考慮してください。
親トピック: apex.storageネームスペース
apex.storage.getCookie
Cookie名(pName)の値を戻します。
パラメータ
表38-65 apex.storage.getCookie
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
String |
Cookieの名前。 |
戻り値
Cookieの文字列値。
親トピック: apex.storageネームスペース
apex.storage.hasLocalStorageSupport
ブラウザがローカル・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalseを戻します。最新のブラウザはほとんどこの機能をサポートしていますが、ユーザーがオフにできるブラウザもあります。
パラメータ
なし
戻り値
ブラウザがローカル・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalse。
親トピック: apex.storageネームスペース
apex.storage.getScopedLocalStorage
localStorageオブジェクトを隠すシン・ラッパーで、pOptionsパラメータによって定義される接頭辞にすべてのキーのスコープを設定します。localStorageがサポートされていない場合でも、戻されるオブジェクトは使用できますが、何の効果もありません。したがって、このファンクションをコールする前に、apex.storage.hasLocalStorageSupportを使用してサポート状況をテストする必要はありません。
パラメータ
表38-66 apex.storage.getScopedLocalStorage
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
Object |
ローカル・ストレージのスコープを定義するオブジェクト。戻された |
表38-67 pOptionsのプロパティ
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
String |
すべてのキーに追加される静的な接頭辞文字列。デフォルトは空の文字列です。 |
|
|
ブール |
|
|
|
ブール |
|
|
|
String |
リージョンなどページの一部を示す追加の文字列。 |
戻り値
localStorageラッパー・オブジェクト。このオブジェクトのプロパティとファンクションは、ブラウザのStorageインタフェースと同じです。
表38-68 localStorageラッパー
| プロパティ | 説明 |
|---|---|
|
|
APEX固有のプロパティ。このスコープ付きストレージ・オブジェクトに付く接頭辞。 |
|
|
スコープ付きストレージ・オブジェクトでの項目の数。 |
|
|
スコープ付きストレージ・オブジェクトでn番目のキーを戻します。 |
|
|
指定したキーの値を戻します。 |
|
|
指定したキーの値をデータに設定します。 |
|
|
指定したキーを削除します。 |
|
|
スコープ付きストレージ・オブジェクトからすべてのキーを削除します。 |
|
|
APEX固有のファンクション。このオブジェクトの外部でキーが追加または削除された可能性がある場合に、lengthプロパティが正しいことを確認するために使用されます。 |
例
次の例では、Acmeという接頭辞とアプリケーションIDを使用してすべてのキーの範囲を決めるローカル・ストレージ・オブジェクトを作成します。次に、setting1というアイテムを設定し、取得します。
var myStorage = apex.storage.getScopedLocalStorage( {
prefix: "Acme",
useAppId: true
});
myStorage.setItem( "setting1", "on" );
setting = myStorage.getItem( "setting1" ); // returns "on"親トピック: apex.storageネームスペース
apex.storage.getScopedSessionStorage
sessionStorageオブジェクトを隠すシン・ラッパーで、pOptionsパラメータによって定義される接頭辞にすべてのキーのスコープを設定します。sessionStorageがサポートされていない場合でも、戻されるオブジェクトは使用できますが、何の効果もありません。したがって、このファンクションをコールする前に、apex.storage.hasSessionStorageSupportを使用してサポート状況をテストする必要はありません。
パラメータ
表38-69 apex.storage.getScopedSessionStorage
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
Object |
セッション・ストレージのスコープを定義するオブジェクト。戻された |
表38-70 pOptionsのプロパティ
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
String |
すべてのキーに追加される静的な接頭辞文字列。デフォルトは空の文字列です。 |
|
|
ブール |
|
|
|
ブール |
|
|
|
String |
リージョンなどページの一部を示す追加の文字列。 |
戻り値
sessionStorageラッパー・オブジェクト。このオブジェクトのプロパティとファンクションは、ブラウザのStorageインタフェースと同じです。
表38-71 sessionStorage
| プロパティ | 説明 |
|---|---|
|
|
APEX固有のプロパティ。このスコープ付きストレージ・オブジェクトに付く接頭辞。 |
|
|
スコープ付きストレージ・オブジェクトでの項目の数。 |
|
|
スコープ付きストレージ・オブジェクトでn番目のキーを戻します。 |
|
|
指定したキーの値を戻します。 |
|
|
指定したキーの値をデータに設定します。 |
|
|
指定したキーを削除します。 |
|
|
スコープ付きストレージ・オブジェクトからすべてのキーを削除します。 |
|
|
APEX固有のファンクション。このオブジェクトの外部でキーが追加または削除された可能性がある場合に、lengthプロパティが正しいことを確認するために使用されます。 |
例
次の例では、Acmeという接頭辞とアプリケーションIDを使用してすべてのキーの範囲を決めるセッション・ストレージ・オブジェクトを作成します。次に、setting1というアイテムを設定し、取得します。
var myStorage = apex.storage.getScopedSessionStorage( {
prefix: "Acme", useAppId: true
});
myStorage.setItem( "setting1", "on" );
setting = myStorage.getItem( "setting1" ); // returns "on"親トピック: apex.storageネームスペース
apex.storage.hasSessionStorageSupport
ブラウザがセッション・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalseを戻します。最新のブラウザはほとんどこの機能をサポートしていますが、ユーザーがオフにできるブラウザもあります。
パラメータ
なし
戻り値
ブラウザがセッション・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalse。
親トピック: apex.storageネームスペース
apex.storage.setCookie
Cookie (pName)を指定の値(pValue)に設定します。
パラメータ
表38-72 apex.storage.setCookie
| 名前 | タイプ | 説明 |
|---|---|---|
|
|
String |
設定するCookieの名前。 |
|
|
String |
Cookieを設定する値。 |
親トピック: apex.storageネームスペース