hx-boost

该hx-boost属性允许您“提升”普通锚点和表单标签以使用 AJAX。这有一个很好的后备方案,即如果用户未启用 javascript,网站将继续工作。

对于锚点标签,点击锚点将向GET中指定的 url 发出请求href,并推送该 url,从而创建历史记录条目。目标是标签 <body> ,innerHTML 默认使用交换策略。除了触发器之外,所有这些都可以通过使用适当的属性进行修改click。

对于表单,请求将根据属性中的方法转换为GET或,并由 触发。同样,目标将是页面的 ,并且将使用交换。但是,不会推送 url ,也不会创建历史记录条目。(如果您希望推送 url ,可以使用 hx-push-url 属性。)POST method submit body innerHTML

以下是一些增强链接的示例:

<div hx-boost="true">
  <a href="/page1">Go To Page 1</a>
  <a href="/page2">Go To Page 2</a>
</div>

GET这些链接将向相应的 URL发出 ajax 请求,并用它替换正文的内部内容。

以下是增强形式的一个例子:

<form hx-boost="true" action="/example" method="post">
    <input name="email" type="email" placeholder="Enter email...">
    <button>Submit</button>
</form>

这个表单会POST向给定的 URL 发出一个 ajax 并用它替换主体的内部内容。

笔记

  • hx-boost可以继承并放置在父元素上
  • 只有指向同一域且不是本地锚点的链接才会被提升
  • 所有请求都是通过 AJAX 完成的,因此在执行重定向等操作时请记住这一点
  • 要确定请求是否来自增强锚点或表单,请在 HX-Boosted 请求头中查找
  • 选择性地禁用子元素上的提升hx-boost="false"
  • 使用 boost 禁用元素及其子元素的替换 hx-preserve="true"