AJAXページとファンクションの間の情報の流れ

Visual LANSA

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ページ要求を処理できます。