$p.events.* の実行タイミング
$p.events.* の関数群は、サーバ側で組み立てられた HTML に埋め込まれたイベント呼び出しによって、画面描画時に実行されます。 どのイベントがどのタイミングで呼ばれるかは、ソースコード上でイベント名を検索すると確認できます。例として、on_grid_load は一覧の新規読み込み時と追加読み込み時には実行されますが、フィルタやソータの変更では実行されません。
実行の仕組み
イベントをフックするためのクライアント側の実装は次のファイルにまとめられています。
一方で、イベントの実行そのものはサーバ側の HTML 組み立て処理の中で直接仕込まれています。たとえば記録テーブルの一覧では、次の箇所で実行が仕込まれています。
処理の流れは次のとおりです。
- サーバ側(プリザンター独自の HTML ビルダー)が、イベント呼び出しの JavaScript を含んだ HTML を組み立てる
- その HTML がクライアントに送られる
- 画面描画の際に
$p.eventArgsでイベントがフックされ、$p.events.*に登録した関数が実行される
タイミングの調べ方
ソースコード上でイベント名(例: on_grid_load)を検索すると、そのイベントがどの処理から呼ばれるか、つまりどのタイミングで実行されるかを調べられます。
| イベント | 実行される | 実行されない |
|---|---|---|
on_grid_load | 一覧の新規読み込み時、追加読み込み時 | フィルタ・ソータの変更時 |
ソースを読むときのポイント
「HTML ビルダーによってフロントコードが生成され、それがフロントで描画される際に実行される」という構造は、$p.events.* に限らずプリザンターのソースコードを読むうえで重要です。