hx-boost
hx-boost
属性を使用すると、通常の a エレメントとフォームタグを「ブースト」して AJAX を使用するようにできます。これは、ユーザーが JavaScript を有効にしていない場合にサイトが引き続き動作するという 素晴らしいフォールバック です。
a タグの場合、a をクリックすると href
に指定された URL に GET
リクエストが発行され、URL がプッシュされて履歴エントリが作成されます。ターゲットは <body>
タグで、規定では innerHTML
スワップ戦略が使用されます。これらはすべて、クリックトリガーを除き、適切な属性を使用することで変更できます。
フォームの場合、リクエストは method
属性のメソッドに基づいて GET
または POST
に変換され、submit
によってトリガーされます。ここでも、ターゲットはページの body
で、innerHTML
スワップが使用されます。ただし、URL はプッシュされず、履歴エントリは作成されません(URL をプッシュする場合は hx-push-url 属性を使用できます)。
以下はブーストされたリンクの例です。
<div hx-boost="true">
<a href="/page1">Go To Page 1</a>
<a href="/page2">Go To Page 2</a>
</div>
これらのリンクは、それぞれの URL に ajax GET
リクエストを発行し、ボディの内部コンテンツを置き換えます。
以下はブーストされたフォームの例です。
<form hx-boost="true" action="/example" method="post">
<input name="email" type="email" placeholder="Enter email...">
<button>Submit</button>
</form>
このフォームは、特定の URL に ajax POST
を発行し、ボディの内部コンテンツを置き換えます。
hx-boost
は継承され、親要素に配置できますHX-Boosted
を探しますhx-boost="false"
を使用して、子要素でブーストを非表示にしますhx-preserve="true"
を使用します