08 April 2013

クライアントサイドでビーコン画像のタイムアウトを設定したい

1 pixel の透明 gif とか (new Image).src = "" でビーコンリクエストを送るようなスクリプトで, サーバ側の遅延やダウンに備えてタイムアウトを設定したい.

なんか適当にぐぐってると src 属性を空にするなり, dom から img 要素を削除すればリクエストをキャンセルできるようなことが書いてある Stack Overflow が引っかかったりしたが, すくなくとも手元の Chrome Canary で試した限りではそうはならなかった.

素直に XHR で abort するしかないのかな. (new Image).src = "" がコード量少なくてよかったんだけど, エラーハンドリングとかをやろうと思うとさすがに XHR じゃないと厳しい.

あとはサーバ側の設定. 例えばリバースプロキシのタイムアウトを設定するとかが必要.