Fetch APIのkeepaliveを使ってページ離脱後でもレスポンスを処理する
Firefox 133がサポートしたことで、全主要ブラウザでFetch APIのkeepaliveオプションが使えるようになった。
keepaliveオプションを使うことで、ページを閉じたり離脱したりしたあとでもレスポンスを適切に扱える。
fetch(
'https://example.com/api/data',
{
method: 'GET',
keepalive: true
}
)
DevToolsで確認してみると、keepalive: true
フラグがない場合はリクエスト途中でページを離脱するとStatus: unknown
になるが、keepalive: true
フラグがある場合はStatus: 200
になった。(※この挙動が正しいのかは判断できない)
以下のように fetch().then()
でチェーンしても後続の処理がされるわけではないようだ。
fetch(
'https://example.com/api/data',
{
method: 'GET',
keepalive: true
})
.then(data => console.log(data))
いまのところ有効な使い方がわからないので、ちゃんと調べたい。