AJAXページとファンクションの間の情報の流れ
AJAXページ、AJAXファンクション、およびRAMPスクリプトの間で情報を共有するための主な手段は、仮想クリップボードです。
仮想クリップボードは、名前、値、およびリストのネームスペースです。
· AJAXページのJavaScriptコード(クライアントPCで実行)は、仮想クリップボードから情報を読み書きできます。
· AJAXファンクションのRDML/RDMLXコード(Webサーバーで実行)は、仮想クリップボードから情報を読み書きできます。
· AJAXページのRAMP JavaScriptコード(クライアントPCで実行)は、仮想クリップボードから情報を読み書きできます。
この3つが使用するクリップボードは共有です。クリップボードは、フレームワーク-WEBセッションの開始時に作成され、そのセッションが終了するまで維持され、終了すると破棄されます。クリップボードの内容の変更は、必要に応じてクライアントPCからWebサーバーに(またはその反対に)非表示で転送されます。
クリップボードの変更だけが転送されますが、変更した回数も転送する必要がある情報の量に影響を与えます。
仮想クリップボードの使用に関するいくつかのヒントを以下に示します。
· 名前とその名前に格納する値の基準を作成し、文書化することをお勧めします。
· クライアントからサーバーに転送するクリップボード・データの量は、特にアプリケーションのパフォーマンスに影響を与えます。サーバーからクライアントへの大量のデータの転送は、クライアントからサーバーへの転送よりも影響が小さいです。
フレームワークの仮想クリップボードのAJAX情報
AJAXアプリケーションを使用している場合、フレームワークは、情報を自動的に仮想クリップボードに格納します。通常は、フレームワークの動作を妨げないようにするために、この情報を読み取り専用として扱う必要があります。
名前パート1 | 名前パート2 | 名前パート3 | 使用説明 |
AJAX | SYSTEM | AJAXPAGE | 現在のAJAXページ名 |
AJAX |
SYSTEM | AJAXMODULE | デフォルトのRDMLまたはRDML AJAXファンクション名 |
AJAX | SYSTEM | REQUEST | 現在の要求 |
AJAX | SYSTEM | PAYLOAD | 現在のペイロード |
AJAX | SYSTEM | RETURNCODE | 最新の戻りコード |
AJAX | SYSTEM | MESSAGECOUNT | 最新のメッセージ数(更新される可能性があります) |
AJAX | SYSTEM | MESSAGE |
最新のメッセージ・インスタンス |
AJAX | SYSTEM | <その他> | このネームスペースを使用しないでください。現在および将来のバージョンのフレームワーク用に予約されています。 |
通常は、次のようにサーバー側のAJAXファンクションでAJAX.SYSTEM.REQUESTとAJAX.SYSTEM.PAYLOADにだけアクセスする必要があります。
* Get the action and payload that the Javascript sent ....
Execute Subroutine(GETA) With_Parms(SYSTEM REQUEST 1 #REQUEST)
Execute Subroutine(GETA) With_Parms(SYSTEM PAYLOAD 1 #PAYLOAD)
* Now switch on the requested action
Case Of_Field(#REQUEST)
* Load 10 sample entries
When Value_Is(= LOAD10)
Execute Subroutine(Load10)
* Validate a zip code
When Value_Is(= VALIDATE)
Execute Subroutine(VALIDATE)
* Handle a bad request
Otherwise
Abort Msgid(DCM9899) Msgf(DC@M01) Msgdta(('Unknown request ' + #REQUEST + ' received by ' + *FUNCTION))
Endcase
通常は、これによって、1つのAJAXファンクションで、複数の異なるAJAXページから発行されるさまざまなAJAXページ要求を処理できます。