HTMX Fragment & Router
TsgcHTMX_Fragment / TsgcHTMX_Router — 特定のDOM要素を対象としたアウトオブバンドhtmxスワップペイロードを構築し、URLパターンをDelphiハンドラプロシージャにルーティングします。
TsgcHTMX_Fragment / TsgcHTMX_Router — 特定のDOM要素を対象としたアウトオブバンドhtmxスワップペイロードを構築し、URLパターンをDelphiハンドラプロシージャにルーティングします。
TsgcHTMX_Fragment は、指定されたDOM要素のIDとスワップ戦略に基づいて、正しい形式のアウトオブバンドhtmxスワップ文字列を構築します。TsgcHTMX_Router は受信HTTPリクエストを登録済みのDelphiハンドラメソッドにディスパッチし、手動でのURL解析を不要にします。
TsgcHTMX_Fragment、TsgcHTMX_Router
OOBスワップ & リクエストルーティング
Delphi, C++ Builder, .NET
TsgcHTMX_Fragment を使用して、特定のDOM要素IDを対象としたアウトオブバンドhtmxスワップ文字列を構築します。TsgcHTMX_Router を使用すると、if/elseチェーンを記述することなく、受信HTTPリクエストを登録済みハンドラメソッドにディスパッチできます。
uses
sgcHTMX_Fragment, sgcHTMX_Router;
// Build and broadcast an OOB fragment:
var
oFrag: TsgcHTMX_Fragment;
begin
oFrag := TsgcHTMX_Fragment.Create(nil);
try
oFrag.TargetID := 'kpi-revenue';
oFrag.SwapMethod := 'innerHTML';
oFrag.Content := FormatFloat('#,##0', FRevenue);
oHTMX.BroadcastFragment(oFrag.Fragment);
finally
oFrag.Free;
end;
end;
// Route requests with TsgcHTMX_Router:
var
oRouter: TsgcHTMX_Router;
begin
oRouter := TsgcHTMX_Router.Create(nil);
oRouter.AddRoute('GET', '/customers', HandleCustomers);
oRouter.AddRoute('POST', '/customer/save', HandleCustomerSave);
oRouter.HandleRequest(AContext, ARequest, AResponse);
end;
TsgcHTMX_Fragment *oFrag = new TsgcHTMX_Fragment(NULL);
try
{
oFrag->TargetID = "kpi-revenue";
oFrag->SwapMethod = "innerHTML";
oFrag->Content = FormatFloat("#,##0", FRevenue);
oHTMX->BroadcastFragment(oFrag->Fragment);
}
__finally { delete oFrag; }
TsgcHTMX_Router *oRouter = new TsgcHTMX_Router(NULL);
oRouter->AddRoute("GET", "/customers", HandleCustomers);
oRouter->AddRoute("POST", "/customer/save", HandleCustomerSave);
oRouter->HandleRequest(AContext, ARequest, AResponse);
var frag = new TsgcHTMX_Fragment();
frag.TargetID = "kpi-revenue";
frag.SwapMethod = "innerHTML";
frag.Content = revenue.ToString("N0");
htmxEngine.BroadcastFragment(frag.Fragment);
var router = new TsgcHTMX_Router();
router.AddRoute("GET", "/customers", HandleCustomers);
router.AddRoute("POST", "/customer/save", HandleCustomerSave);
router.HandleRequest(context, request, response);
最もよく使うメンバーです。
置き換えるDOM要素の id。htmxの hx-swap-oob ターゲットに対応します。
htmxのスワップ戦略: innerHTML、outerHTML、beforebegin、afterend など。
ターゲットに注入する新しいHTML。シンプルな文字列でも、任意のsgcHTMLコンポーネントの出力でも指定できます。
読み取り専用。BroadcastFragment に渡すか、HTTPレスポンスボディとして返すための、完全に整形されたOOBスワップ文字列を返します。
URLパターンとHTTPメソッドの組み合わせをDelphiハンドラプロシージャまたはメソッドに登録します。
受信リクエストを登録済みルートと照合し、一致するハンドラを呼び出します。ルートが一致しない場合は False を返します。