事件 - htmx:timeout
htmx:timeout 是 HTMX 中的一个事件,当发起的请求因为超时而被取消时触发。也就是说,当请求超过设定的时间限制还没响应,HTMX 会中断请求并触发这个事件,方便你做一些超时处理,比如提示用户或重试。它封装了 XMLHttpRequest 事件的 timeout 。
可以使用 htmx.config.timeout 设置超时,也可以使用 hx-request 为元素设置超时时间。
设置请求超时时间(单位毫秒),超过这个时间请求会被中断,触发 htmx:timeout。
事件参数
- detail.elt - 发送请求的元素
- detail.xhr - XMLHttpRequest
- detail.target - 请求的目标
- detail.requestConfig - AJAX请求的配置
示例代码
<button hx-get="/slow-endpoint" hx-timeout="2000" hx-target="#result">
请求慢接口(超时2秒)
</button>
<div id="result"></div>
<script>
document.body.addEventListener('htmx:timeout', function(event) {
console.warn('请求超时!');
// 你可以访问 event.detail 来获取更多信息
const detail = event.detail;
alert('请求超时,请稍后重试');
});
</script>