私はWebアプリケーションで作業しており、ローカルストレージを使用しています。しかし、一部のFirefoxユーザーの場合、次のエラーが発生していることに気づきました。
NS_ERROR_FILE_CORRUPTED:コンポーネントがエラーコードを返しました:0x8052000b(NS_ERROR_FILE_CORRUPTED)[nsIDOMStorage.setItem]
関数を呼び出したとき:
function setLocalStorageItem(key, value){
localStorage.setItem(key, JSON.stringify(value));
}
それはこのエラーを回避する方法ですか?
これはブラウザレベルのエラーです。おそらく、このエラーを引き起こすために何か間違ったことをしていません。ブラウザー(またはブラウザーが使用するSQLiteライブラリー)が何か問題を起こしたか、ハードウェアの問題によりファイルが無効な状態のままになりました。
Firefoxの開発チームに参加し、ブラウザのストレージシステムの耐障害性を高めることを除いて、この問題を実際に防ぐことはできません。このエラーからデータを復元する方法はないようです。そのため、このエラーを検出し、ユーザーにブラウザストレージを吹き飛ばす方法を このMDNの投稿 に従ってユーザーに伝える必要があります。 :
try {
setLocalStorageItem(key, value);
} catch(e) {
if(e.name == "NS_ERROR_FILE_CORRUPTED") {
showMessageSomehow("Sorry, it looks like your browser storage has been corrupted. Please clear your storage by going to Tools -> Clear Recent History -> Cookies and set time range to 'Everything'. This will remove the corrupted browser storage across all sites.");
}
}
catch
ブロックは、エラーがNS_ERROR_FILE_CORRUPTED
エラー。私のチェックはe.name
は正しいですが、自分で確認する必要があります。
Firefoxのプロファイルフォルダー内のOSクラッシュファイルが破損し、機能していないWebサイトにつながる可能性があります(私の場合、皮肉なことにFirefoxマーケットプレイス)。ここでは、webappsstore.sqlite
が影響を受けました。
ユーザーとして@Oliが Ask Ubuntu で述べました
Firefoxは、HTML5データをwebappsstore.sqliteというファイルに保存します。これは、〜/ .mozilla/firefox/.... default /のどこかに潜んでいるプロファイルディレクトリにあります(プロファイルの名前によって異なります)。
それを解決してFirefoxを再起動すれば、すべてが元に戻ります。
詳細: https://developer.mozilla.org/en/dom/storage
プロファイルフォルダーから削除または移動すると、Firefoxは新しいサニタイズ済みwebappsstore.sqlite
ファイルを作成します。 私のために働いた。
プロファイルフォルダーの場所に関する情報は、 ここからアクセスできます 。
この問題がクライアントの1つに表示されただけでした。
history
を完全に削除し、(それが重要な部分だと思います)offline website data
は問題を解決しました。
(Firefoxバージョン40.0.)
これが役立つかどうかはわかりませんが、Jiraでこの問題が発生しています。アドオンを無効にしてFirefoxを再起動し、Jiraにwenしました。次に、Firefoxを停止し、アドオンを有効にしてFirefoxを再起動すると、再び機能しました。なぜこれが機能したのかわかりません:)私はFirefox Developerエディション48.0a2(2016-05-24)を使用しています