ApplicationCache を使用してオフライン データを保存するアプリケーションを作成しました。簡単に言えば、オフライン データを有効にしていないユーザーは、履歴がオフになっているか、プライベート ブラウジングを使用していることが原因で、静かに死んでいます。これをキャッチして、ユーザーに明確なエラーを伝えたいと思います。
これは、キャッシュの状態をチェックすることで検出できるようUNCACHED
です。キャッシュがない場合は 0 を返します...しかし、それがキャッシュがまだないことを意味するのか、それともキャッシュが保証されていないことを意味するのかはわかりません(そして、あるはずです、何かが間違っています)。公式の定義はあまり役に立ちません:
UNCACHED (numeric value 0)
The ApplicationCache object's cache host is not associated with an application
cache at this time.
ただし、実際には、cache.status==0
少なくとも Firefox では中止がうまくいくようです。私はそれを正しくやっていますか、それとももっと良い方法がありますか? 誰かが状態図を掘り下げることができれば、余分なポイント。
更新: いいえ、ユーザーが以前にそのページに行ったことがない場合は、0/UNCACHED も返します。ガー!