web-dev-qa-db-ja.com

ローカルストレージのエラー-NS_ERROR_FILE_CORRUPTED-Firefox

私はWebアプリケーションで作業しており、ローカルストレージを使用しています。しかし、一部のFirefoxユーザーの場合、次のエラーが発生していることに気づきました。

NS_ERROR_FILE_CORRUPTED:コンポーネントがエラーコードを返しました:0x8052000b(NS_ERROR_FILE_CORRUPTED)[nsIDOMStorage.setItem]

関数を呼び出したとき:

function setLocalStorageItem(key, value){ 
        localStorage.setItem(key, JSON.stringify(value));
}

それはこのエラーを回避する方法ですか?

33
Juan Jardim

これはブラウザレベルのエラーです。おそらく、このエラーを引き起こすために何か間違ったことをしていません。ブラウザー(またはブラウザーが使用する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は正しいですが、自分で確認する必要があります。

27
apsillers

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ファイルを作成します。 私のために働いた。
プロファイルフォルダーの場所に関する情報は、 ここからアクセスできます

39
Volker E.

この問題がクライアントの1つに表示されただけでした。

historyを完全に削除し、(それが重要な部分だと思います)offline website dataは問題を解決しました。

(Firefoxバージョン40.0.

2

これが役立つかどうかはわかりませんが、Jiraでこの問題が発生しています。アドオンを無効にしてFirefoxを再起動し、Jiraにwenしました。次に、Firefoxを停止し、アドオンを有効にしてFirefoxを再起動すると、再び機能しました。なぜこれが機能したのかわかりません:)私はFirefox Developerエディション48.0a2(2016-05-24)を使用しています

0
ddreian