Так что в основном я создаю веб-сайт, который позволяет пользователю загружать файл .txt и возвращает его для загрузки после шифрования с использованием шифра сдвига.
У меня есть следующий HTML код
<div class="file-inp mainscreen-row-element level-2 enc">
Upload Text File
</div>
<input type="file" accept=".txt" id="inp-elem" hidden />
И я храню некоторые данные в indexedDB, если их там еще нет
localforage.getItem("encrypton-caesar-cipher").then(d => {
if (d == null) {
localforage.setItem("encrypton-caesar-cipher", {
enc: { inp: { text: [], files: [] }, out: { text: [], files: [] } },
dec: { inp: { text: [], files: [] }, out: { text: [], files: [] } },
ai: { inp: { text: [], files: [] }, out: { text: [], files: [] } }
});
}
});
И я javascript включаю этот код
$(".file-inp").on("click", e => {
$("#inp-elem").trigger("click");
$("#inp-elem").on("change", () => {
const f = $("#inp-elem").prop("files");
localforage.getItem("encrypton-caesar-cipher").then(d => {
if (!(d.enc.inp.files.includes(f))) {
d.enc.inp.files.push(f);
localforage.setItem("encrypton-caesar-cipher", d);
}
});
});
});
Так как пользователь загружает файл, я сохраняю объект в indexedDB с помощью localForage, и у меня есть это условное
if (!(d.enc.inp.files.includes(f)))
, потому что я хочу убедиться, что я не храню один и тот же объект повторно
Теперь, если я загружаю файл a.txt и go в Dev Tools, он отображается там, и если загрузить его снова, мои данные indexedDB не изменяются, чего я и ожидаю, но когда я обновляю sh страницы, а затем снова загрузите a.txt, один и тот же объект сохраняется и отображается в инструментах разработки дважды, и этот показатель продолжает увеличиваться, если я перезагружаю страницу и загружаю тот же файл.
I хочу знать, что я делаю не так или т здесь возможный обходной путь?