HTMX Fragment & Router
TsgcHTMX_Fragment / TsgcHTMX_Router — 타겟 DOM 업데이트를 위한 out-of-band htmx 스왑 페이로드를 구성하고, URL 패턴을 Delphi 핸들러 프로시저로 라우팅합니다.
TsgcHTMX_Fragment / TsgcHTMX_Router — 타겟 DOM 업데이트를 위한 out-of-band htmx 스왑 페이로드를 구성하고, URL 패턴을 Delphi 핸들러 프로시저로 라우팅합니다.
TsgcHTMX_Fragment는 주어진 DOM 요소 id와 스왑 전략에 맞게 올바른 형태의 out-of-band htmx 스왑 문자열을 구성합니다. TsgcHTMX_Router는 수신 HTTP 요청을 등록된 Delphi 핸들러 메서드로 디스패치하여 수동 URL 파싱을 없애줍니다.
TsgcHTMX_Fragment, TsgcHTMX_Router
OOB 스왑 & 요청 라우팅
Delphi, C++ Builder, .NET
TsgcHTMX_Fragment를 사용하여 특정 DOM 요소 id를 타겟으로 하는 out-of-band 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를 반환합니다.