💻 クライアント JavaScript ライブラリ:EFW

提供されたソースコードは、EFW と呼ばれるフレームワークのクライアントサイドJavaScriptライブラリefw.jsおよびefw.client.js)を構成しています。

このフレームワークの主な目的は、クライアント(ブラウザ)とサーバー間のイベント駆動型の通信と、それに伴うUI操作の自動化を提供することです。

🧪 主要な構造と機能


1. Efw コンストラクタ(efw.js

2. グローバルインスタンスとプロパティ(efw.js

3. システム初期化(efw.js

📡 EfwClient の通信フロー(efw.client.js


EfwClient.prototype.fire メソッドは、サーバーイベントを実行するための主要なロジックを含んでいます。

1. イベント実行の流れ

イベント実行は、基本的に以下の二段階のAjax通信(またはWebSocket通信)で構成されます。

ステップ メソッド 目的
クリア N/A エラー表示 (.efw_input_error) をクリア。
URL構築 N/A efwServlet, uploadServlet, downloadServlet, previewServlet, efwWebSocket のURLを構築。
フェーズ1 _callFirstAjax サーバーにイベントIDを送り、クライアントが収集すべきパラメーターのフォーマット (paramsFormat) を取得する。
パラメーター収集 _pickupParams サーバーから取得した paramsFormat に基づいて、HTML要素($(key))や manualParams からデータを自動収集する。
ファイルアップロード _callUploadAjax ファイル入力 (<input type="file">) が含まれる場合、FormData を使ってファイルをアップロードする。
フェーズ2 _callSecondAjax / _callSecondAjaxInWsMode 収集したパラメーター全体をサーバーに送り、イベントの実行結果 (values, actions) を取得する。
結果反映 _showValues サーバーから返された values に基づいて、HTML要素の値を自動更新する。
アクション実行 _showActions サーバーから返された actions に基づいて、クライアントサイドの操作(エラー表示、要素の表示/非表示、ナビゲーション、ダウンロードなど)を実行する。

2. パラメーターの収集 (_pickupParams)

3. アクションの処理 (_showActions)

サーバーは actions オブジェクトを返すことで、クライアントに特定の動作を指示できます。

💡 まとめ

提供されたソースコードは、「クライアント-サーバー間の双方向通信」と「UIのデータバインディング/操作」を抽象化・自動化するための、堅牢なクライアントフレームワークとして設計されています。開発者は、冗長なAjaxコールバック処理やDOM操作を記述することなく、Efw("eventId") を呼び出すだけで、サーバーイベントの実行、パラメーターの自動収集、結果の自動表示、UIアクションの実行を行うことができます。