わかりましたので、xhr 経由でデータのチャンクをダウンロードしていて、Chrome 拡張機能用にローカルに保存したいと考えています。
最初は に格納できましたlocalStorageが、localStorage では処理できない大きなチャンクに移動する必要があったため、Web Sql Databaseに格納することにしました。ただし、データをlocalStorageダウンロードしたとおりに保存することはできましたが、データベースに保存しようとすると、データが失われたり、エラーが発生したりします。
そのようです:
//this way the data gets lost because it is filtered to prevent SQL injection attacks
tx.executeSql('INSERT INTO files (id, content) VALUES (?,?)', [fileID,file]);
//this method gives an error (unrecognized token) because the data contains byte values in the string
tx.executeSql('INSERT INTO files (id, content) VALUES (?, "' + file + '")', [id]);
データベースにデータを取得する他の唯一の方法は、を使用することであり、それは機能しますが、データが保存/使用されるたびに/btoa(file)を実行する必要がある場合、パフォーマンスはかなりの打撃を受けると考えています.btoaatob
だから私の質問は、を使用せずにデータベースにデータを保存する方法btoa、またはそれが不可能な場合、どのくらいのパフォーマンスがbtoa使用されるかということです。
localStorageまた、SQLite と Web Sql データベースを使用していることもかなり確信していlocalStorageます。