Skip to content

$p.events.* の実行タイミング ​

第5版作成 最終更新 (日本時間)
確認バージョン1.5.8.1

$p.events.* の関数群は、サーバ側で組み立てられた HTML に埋め込まれたイベント呼び出しによって、画面描画時に実行されます。 どのイベントがどのタイミングで呼ばれるかは、ソースコード上でイベント名を検索すると確認できます。例として、on_grid_load は一覧の新規読み込み時と追加読み込み時には実行されますが、フィルタやソータの変更では実行されません。

実行の仕組み ​

イベントをフックするためのクライアント側の実装は次のファイルにまとめられています。

一方で、イベントの実行そのものはサーバ側の HTML 組み立て処理の中で直接仕込まれています。たとえば記録テーブルの一覧では、次の箇所で実行が仕込まれています。

処理の流れは次のとおりです。

  1. サーバ側(プリザンター独自の HTML ビルダー)が、イベント呼び出しの JavaScript を含んだ HTML を組み立てる
  2. その HTML がクライアントに送られる
  3. 画面描画の際に $p.eventArgs でイベントがフックされ、$p.events.* に登録した関数が実行される

タイミングの調べ方 ​

ソースコード上でイベント名(例: on_grid_load)を検索すると、そのイベントがどの処理から呼ばれるか、つまりどのタイミングで実行されるかを調べられます。

イベント実行される実行されない
on_grid_load一覧の新規読み込み時、追加読み込み時フィルタ・ソータの変更時

ソースを読むときのポイント

「HTML ビルダーによってフロントコードが生成され、それがフロントで描画される際に実行される」という構造は、$p.events.* に限らずプリザンターのソースコードを読むうえで重要です。

関連ページ ​

変更履歴

第5版画面項目の連携・送信と非同期処理の解説を拡充し検索向け情報を整備
第4版$p.events の複数処理登録と拡張スクリプトでの共通化を解説
第3版「スクリプト」を 1.5.8.1 のソースで検証して修正
第2版記事のファイル名に並び順の番号を付け、元記事リンクを frontmatter の sources に移行
第1版「スクリプト」セクションの記事を追加