プライマリ・コンテンツに移動
Oracle® Application Express APIリファレンス
リリース18.1
E98586-01
目次へ移動
目次
索引へ移動
索引

前
次

37.12 apex.storageネームスペース

apex.storageネームスペースには、Cookieやセッション・ストレージなど、ブラウザの格納機能に関連する機能がすべて含まれます。

37.12.1 ローカルおよびセッション・ストレージについて

ローカル・ストレージとセッション・ストレージをまとめてWebストレージと言います。ソース(Webサイト)に対応するキー/値ペアを安全に格納するブラウザ機能です。キーと値は文字列です。Webストレージのストレージ容量は、Cookieより大きいものの、無制限ではありません。Cookieと比べたもうひとつの利点は、キー/値ペアがリクエストごとに送信されないことです。

ローカル・ストレージもセッション・ストレージも、名前/値ペアを設定、取得、削除する際に同じAPIを使用します。違いは、セッション・ストレージがセッション終了時に消えてしまうのに対して、ローカル・ストレージはブラウザの再起動後でも使用できるということです。ローカル・ストレージに格納されるデータは、ユーザーの判断で自由にブラウザから制限または削除できます。サーバーに格納されるデータとは異なり、ローカル・ストレージは異なるマシン上のブラウザ間でも、あるいは同じマシン上の異なるブラウザ間でも共有されません。

APEXは、複数のアプリケーションや複数のワークスペース、さらには複数のワークスペースで実行される同じアプリケーションのインスタンスもサポートしているため、Webストレージの使用時に競合が発生する可能性もあります。単一のAPEXインスタンス(単一のソース、またはWebサイト)からのアプリケーションはすべて、同じWebストレージ領域を共有するからです。apex.storage.getScopedLocalStorageapex.storage.getScopedSessionStorageでは、アプリケーションIDと、オプションで追加される情報(ページID、リージョンIDなど)に基づいて、ストレージをスコープにパーティション化することで、この問題を解決しています。スコープは、すべてのストレージ・キーに接頭辞を付けて作成します。こうすると、異なるアプリケーションや、同じアプリケーションの異なるインスタンスが同じキーを使用する場合に競合が回避されますが、これが安全なパーティションになるわけではありません。機密情報をWebストレージに格納する前に、このような点を考慮してください。

37.12.2 apex.storage.getCookie

Cookie名(pName)の値を戻します。

パラメータ

表37-65 apex.storage.getCookie

名前 タイプ 説明

pName

String

Cookieの名前。

戻り値

Cookieの文字列値。

37.12.3 apex.storage.hasLocalStorageSupport

ブラウザがローカル・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalseを戻します。最新のブラウザはほとんどこの機能をサポートしていますが、ユーザーがオフにできるブラウザもあります。

パラメータ

なし

戻り値

ブラウザがローカル・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalse

37.12.4 apex.storage.getScopedLocalStorage

localStorageオブジェクトを隠すシン・ラッパーで、pOptionsパラメータによって定義される接頭辞にすべてのキーのスコープを設定します。localStorageがサポートされていない場合でも、戻されるオブジェクトは使用できますが、何の効果もありません。したがって、このファンクションをコールする前に、apex.storage.hasLocalStorageSupportを使用してサポート状況をテストする必要はありません。

パラメータ

表37-66 apex.storage.getScopedLocalStorage

名前 タイプ 説明

pOptions

Object

ローカル・ストレージのスコープを定義するオブジェクト。戻されたlocalStorageラッパー・オブジェクトによって使用されるストレージ・キー接頭辞を定義します次に示すpOptionsのプロパティ表を参照してください。

表37-67 pOptionsのプロパティ

名前 タイプ 説明

prefix

String

すべてのキーに追加される静的な接頭辞文字列。デフォルトは空の文字列です。

useAppId

ブール

trueの場合、キーにアプリケーションIDが含まれます。デフォルトはtrueです。

usePageId

ブール

trueの場合、キーにアプリケーション・ページIDが含まれます。デフォルトは、falseです。

regionId

String

リージョンなどページの一部を示す追加の文字列。

戻り値

localStorageラッパー・オブジェクト。このオブジェクトのプロパティとファンクションは、ブラウザのStorageインタフェースと同じです。

表37-68 localStorageラッパー

プロパティ 説明

prefix

APEX固有のプロパティ。このスコープ付きストレージ・オブジェクトに付く接頭辞。

length

スコープ付きストレージ・オブジェクトでの項目の数。

key( n )

スコープ付きストレージ・オブジェクトでn番目のキーを戻します。

getItem( key )

指定したキーの値を戻します。

setItem( key, data )

指定したキーの値をデータに設定します。

removeItem( key )

指定したキーを削除します。

clear

スコープ付きストレージ・オブジェクトからすべてのキーを削除します。

sync()

APEX固有のファンクション。このオブジェクトの外部でキーが追加または削除された可能性がある場合に、lengthプロパティが正しいことを確認するために使用されます。

次の例では、Acmeという接頭辞とアプリケーションIDを使用してすべてのキーの範囲を決めるローカル・ストレージ・オブジェクトを作成します。次に、setting1というアイテムを設定し、取得します。

var myStorage = apex.storage.getScopedLocalStorage( {
    prefix: "Acme",
    useAppId: true 
});
myStorage.setItem( "setting1", "on" );
setting = myStorage.getItem( "setting1" ); // returns "on"

37.12.5 apex.storage.getScopedSessionStorage

sessionStorageオブジェクトを隠すシン・ラッパーで、pOptionsパラメータによって定義される接頭辞にすべてのキーのスコープを設定します。sessionStorageがサポートされていない場合でも、戻されるオブジェクトは使用できますが、何の効果もありません。したがって、このファンクションをコールする前に、apex.storage.hasSessionStorageSupportを使用してサポート状況をテストする必要はありません。

パラメータ

表37-69 apex.storage.getScopedSessionStorage

名前 タイプ 説明

pOptions

Object

セッション・ストレージのスコープを定義するオブジェクト。戻されたsessionStorageラッパー・オブジェクトによって使用されるストレージ・キー接頭辞を定義します次に示すpOptionsのプロパティ表を参照してください。

表37-70 pOptionsのプロパティ

名前 タイプ 説明

prefix

String

すべてのキーに追加される静的な接頭辞文字列。デフォルトは空の文字列です。

useAppId

ブール

trueの場合、キーにアプリケーションIDが含まれます。デフォルトはtrueです。

usePageId

ブール

trueの場合、キーにアプリケーション・ページIDが含まれます。デフォルトは、falseです。

regionId

String

リージョンなどページの一部を示す追加の文字列。

戻り値

sessionStorageラッパー・オブジェクト。このオブジェクトのプロパティとファンクションは、ブラウザのStorageインタフェースと同じです。

表37-71 sessionStorage

プロパティ 説明

prefix

APEX固有のプロパティ。このスコープ付きストレージ・オブジェクトに付く接頭辞。

length

スコープ付きストレージ・オブジェクトでの項目の数。

key( n )

スコープ付きストレージ・オブジェクトでn番目のキーを戻します。

getItem( key )

指定したキーの値を戻します。

setItem( key, data )

指定したキーの値をデータに設定します。

removeItem( key )

指定したキーを削除します。

clear

スコープ付きストレージ・オブジェクトからすべてのキーを削除します。

sync()

APEX固有のファンクション。このオブジェクトの外部でキーが追加または削除された可能性がある場合に、lengthプロパティが正しいことを確認するために使用されます。

次の例では、Acmeという接頭辞とアプリケーションIDを使用してすべてのキーの範囲を決めるセッション・ストレージ・オブジェクトを作成します。次に、setting1というアイテムを設定し、取得します。

var myStorage = apex.storage.getScopedSessionStorage( {
    prefix: "Acme", useAppId: true 
});
myStorage.setItem( "setting1", "on" );
setting = myStorage.getItem( "setting1" ); // returns "on"

37.12.6 apex.storage.hasSessionStorageSupport

ブラウザがセッション・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalseを戻します。最新のブラウザはほとんどこの機能をサポートしていますが、ユーザーがオフにできるブラウザもあります。

パラメータ

なし

戻り値

ブラウザがセッション・ストレージAPIをサポートしている場合はtrue、それ以外の場合はfalse

37.12.7 apex.storage.setCookie

Cookie (pName)を指定の値(pValue)に設定します。

パラメータ

表37-72 apex.storage.setCookie

名前 タイプ 説明

pName

String

設定するCookieの名前。

pValue

String

Cookieを設定する値。