JavaScript

[HTML/CSS/JS] Как сохранять изменённые в .js данные оффлайн-сервера локально?

Сразу суть вопроса: Разве не может .js просто записывать ключи и значения в некий локальный файл в той же директории, а при необходимости доставать их оттуда?
Дальше пояснения:
Решил сделать оффлайн-сайт для своих нужд (это скорее интерфейс для работы с личными данными), поизучал html, css и js, и написал сайт, имеющий: некий текст, изменяемый с помощью поля input; блоки-ссылки, добавляемые/удаляемые соответствующими кнопками; блок с картинкой, которую я выбираю со своего компьютера также по кнопке, в общем, функционал разнообразный.
Проблема очевидна - все изменения сбрасываются при перезагрузке страницы. Вот я и стал искать способ держать изменяемые параметры у себя же на компьютере, чтобы .js мог перезаписывать и брать их оттуда когда угодно.
Я наткнулся на способ с браузерным хранилищем localstorage, но у меня есть сомнения на его счёт, ведь судя по описанию, данные хранятся в самом браузере, но что если я захочу сменить браузер или перенести папку с файлами сайта на другой компьютер? Или с браузером/пк что-то случится и от сайта останется лишь hdd с основными файлами? Останутся ли данные со мной?
Уже собрался изучать серверный язык, PHP или Node.js, но они требуют настоящего запуска сервера, с ip и отслеживанием портов. Ну или я что-то неправильно понял / не нашёл, ведь упоминание портов и соединения с сервером отвело меня от дальнейшего изучения, поправьте, если не прав.
В общем, есть ли простой способ это сделать? Учитывая то, что сайт всегда будет локальным.
Быть может, я зря грешу на localstorage и он будет сохранять данные физически на компьютере (и я смогу делать с ними что угодно, в том числе открывать в другом браузере).
Или в серверных языках есть такая возможность? Тогда посоветуйте язык для изучения.
Вот бы просто открывать сайт через index.html в любых условиях и всё работало
У js нет доступа ни к чему, кроме самого браузера. Вот и делай выводы
Иван Ларкин
Иван Ларкин
51 763
Лучший ответ
был когда то activeX который позволял через апплеты взаимодействовать с ос, но так как начали писать вирусы, лавочку эту прикрыли давно. ничего не мешает тебе написать (либо собрать переносную сборку) веб сервер и реализовать данный функционал под себя, раз все у тебя будет локально.. и малой кровью тут вряд ли обойтись, не стоит возлагать больших надежд на вэб (пока не поймешь сути). кстати локальное хранилище находится у каждого браузера, а не общее для всех (на будущее)
Андрей Буков
Андрей Буков
59 745
JS в браузере может работать с файлами только по указанию пользователя. Это выглядит так же как загрузка файла на сервер через веб или скачивание файла.
Любой другой язык не имеет таких ограничений. И JS не имеет таких ограничений, когда работает не в браузере.
Есть технология создания графического интерфейса: в приложение встроен браузер. Графический интерфейс работает в этом встроенном браузере таким же образом как в веб, но программный код может быть написан на разных языках и не имеет ограничений. Точнее, там так. Есть JS, который как обычно работает в браузере с ограничениями. Но этот JS может вызывать функции из главного кода приложения, поэтому все ограничения можно обойти.
"..есть ли простой способ это сделать? Учитывая то, что сайт всегда будет локальным... Или в серверных языках есть такая возможность? Тогда посоветуйте язык для изучения"

Python и библиотека Eel в помощь. Серверную часть пишите на Python(не), а интерфейс и логику можно оставить на html/js.
A.k.
A.k.
3 695
Есть вариант использовать AJAX+JSON+PHP. Например, есть кнопка "Сохранить". Жмем её. Отправляем данные через AJAX в формате JSON посредством POST запроса на JS. Далее на PHP перезаписываем данные в нужном файле. А при загрузке страницы читаем этот файл и берем оттуда данные. Файл можно даже сделать с расширением *.json. Пример POST на чистом JS на всякий оставлю на картинке.

К стати интересно)) надо тоже такое намутить себе.
A.k. Один вопрос, причём тут локальный веб-сервер и PHP?

На Python(не) можно упаковать всё в один файл .exe и запускать полноценное приложение, всё так же через браузер. Там уже не нужны будут заморочки вроде Ajax + JSON, и уж тем более не нужны заморочки по поводу самого сервера, ибо всё уже под капотом встроено и настроено за вас.

Ваш хвалённый PHP так может?
A.k. Я считаю что, то вы предлагаете априори нерентабельно. По крайней мере для локального проекта.