ホーム > アプリケーション・ビルダーの概念 > セッション・ステート値の管理 > セッション・ステートのクリア
![]() 前へ |
![]() 次へ |
アプリケーションの開発時に、特定のアイテム、ページ上のすべてのアイテム、アプリケーション内のすべてのページ、または現行のユーザー・セッション用にキャッシュされた値をクリアする必要がある場合があります。キャッシュされた値をクリアすると、その値がNULLにリセットされます。次のトピックでは、セッション・ステートをクリアする具体的な例について説明します。
トピック:
1つのアイテムのキャッシュをクリアすると、そのアイテムの値がNULLにリセットされます。たとえば、ページがレンダリング用に準備されるときに特定のアイテムの値を確実にNULLにしておく必要がある場合に、この方法を使用します。
次の例では、標準f?p構文を使用してアイテムのキャッシュをクリアします。この例では、アプリケーション100のページ5がコールされます。f?p構文のClearCache位置にMY_ITEMを指定すると、MY_ITEMの値がNULLにリセットされます。
f?p=100:5:&APP_SESSION.::NO:MY_ITEM
次の例では、アイテムTHE_EMPNOおよびTHE_DEPTNOの値がリセットされます。
f?p=100:5:&APP_SESSION.::NO:THE_EMPNO,THE_DEPTNO
アプリケーション・アイテムをキャッシュすると、セッション・ステートを効率的に保持できます。ただし、ページ上のすべてのアイテムのキャッシュをクリアする必要がある場合もあります。たとえば、ユーザーが新しい注文を作成するリンクをクリックすると、ページ上のすべてのフィールドがクリアされるようにする必要があると想定します。ページ全体のキャッシュをクリアすることで、ページ上のすべてのアイテムの値をNULLに設定できます。
この例では、2つのページのセッション・キャッシュがクリアされ、ページ区切りがリセットされます。
f?p=6000:6003:&APP_SESSION.::NO:RP,6004,6014
この例について説明します。
アプリケーション6000のページ6003が実行され、現行のセッションIDが使用されます。
デバッグ情報を表示しないように指示されます(NO)。
カレント・セッションのキャッシュに保持されたページ6004および6014のアイテムのすべての値がクリアされます。
ページ6003(リクエストされたページ)のリージョンのページ区切り(RP)がリセットされます。
この例では、更新フォームの実装方法を示します。既存の情報をクリアし、アイテムの値(通常、主キー)を設定します。
f?p=6000:6003:&APP_SESSION.::NO:6003:MY_ITEM:1234
この例について説明します。
アプリケーション6000のページ6003が実行され、現行のセッションIDが使用されます。
デバッグ情報を表示しないように指示されます(NO)。
カレント・セッションのキャッシュに保持されたページ6003のアイテムのすべての値がクリアされます。
MY_ITEMというアイテムのセッション・ステートの値を1234に設定します。
この例は、値が複数のアイテムに渡されること以外は、前述の例に類似しています。
f?p=6000:6004:&APP_SESSION.::NO:6003:MY_ITEM1,MY_ITEM2,MY_ITEM3:1234,,5678
この例について説明します。
アプリケーション6000のページ6004が実行され、現行のセッションIDが使用されます。
ページ6003のアイテムのカレント・セッションのキャッシュがクリアされます。
デバッグ情報を表示しないように指示されます(NO)。
MY_ITEM1の値が1234、MY_ITEM2の値がNULL(プレースホルダとして使用されたカンマによって示される)およびMY_ITEM3の値が5678に設定されます。
アプリケーション・キャッシュは、f?p構文を使用し、キーワードAPPを使用してClear Cache引数を作成することでクリアできます。次に例を示します。
f?p=App:Page:Session::NO:APP
|
注意: アプリケーション全体のキャッシュをリセットしても、アプリケーションは完全なリセット状態にはリストアされません。たとえば、アプリケーションに新しいインスタンス開始時の計算やプロセスが含まれている場合、Application Expressエンジンは、該当するアプリケーション・セッションが作成されたときに、これらの計算やプロセスを実行します。その後、キャッシュのクリア・リクエストを処理し、リクエストされたページを表示します。(セッションIDの追跡にCookieが使用されていない場合に)セッションIDを指定せずにアプリケーションを完全にリセットするには、セッションIDを指定せずにURLを使用するか、または別のアプリケーションから |