Хорошо, поэтому я загружаю порции данных через 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)
, и это работает, но я думаю, что производительность сильно снизится, если потребуется btoa
/ atob
каждый раз, когда данные хранятся / используются.
Поэтому мой вопрос заключается в том, как сохранить данные в базе данных без использования btoa
, или если это невозможно, насколько высокая производительностьbtoa
использует?
Я также вполне уверен, что localStorage
использует SQLite, а также базу данных Web Sql, так почему я не могу просто поместить данные в последнюю так легко, как я могус localStorage
?