ServiceWorkerでリクエストにタイムアウトを設定する
PWAにおいて一通りのオフライン対応をしても、実質オフラインだがクライアントが疎通ありとみなしているような環境で用いられると、クライアントからは「ネットは繋がっている」「リクエストは途中」であることしかわからないので、サーバからのレスポンスを愚直に待ち続けてしまう。firebase authではセッションの開始時に https://identitytoolkit.googleapis.com/v1/accounts:lookup にPOSTしてセッションの状態を確かめるが、レスポンスが返るか失敗するまでSDK上で状態が確定しない。1分でも3分でも待ってしまう(4分以上は確かめていない。リクエストのタイムアウトはSDK内部で設定されている気はするのだけど)。そこで今回は、レスポンスが帰ることが望み薄な環境において早めに損切りする実装を試みる。 実装は固まったので後から書く