Как сделать автосохранение текстового поля?

Есть одно обычное textarea в котором он хранит некоторые свои заметки.
Заказчику по зарез нужно, чтобы он открыл модальное окно заметок, ввел туда (в это textarea) заметки и они автосохранились.

Вариант сохранять при закрытии модалки не катит, так как он может вдруг закрыть окно браузера.

Нашел решение - сохранять при вводе каждый раз через Ajax. А это будет верным решением ,что каждый раз запрос к серверу?
Есть ли альтернативы?
  • Вопрос задан
  • 313 просмотров
Решения вопроса 2
Konstantin18ko
@Konstantin18ko
Стоматолог
Нет, есть вариант лучше localStorage, единственное что он не отправлять данные на сервер. Прикрутить таймер, каждые 5 секунд отправлять на сервер.
Ответ написан
Комментировать
Kozack
@Kozack Куратор тега JavaScript
Thinking about a11y
Определитесь где вы хотите хранить данные. Если заметки нужны только на одном устройстве — тогда можно хранить на клиенте. Иначе — на сервере.

Если данные будут храниться на клиенте — тогда тут всё просто:
По событию oninput сохраняете заметку в localStorage или в любом другом хранилище (благо браузеры дают выбор)

Если данные нужно отправлять на сервер то тут всё сложнее
Вам стоит применить фоновую синхранизацию. Если коротко: данные для сохраниния будут храниться локально на клиетне до тех пор, пока не будут сохранены на сервере. Если клиент в метро, в тоннеле, или ещё где-то где нет интернета, он по прежнему может написать заметку. А когда соединение с сервером будет восстановлено — заметка сохранится глобально и будет доступна на других устройствах.

Если вы хотите пойти по более простому пути тогда так:
По событию oninput запускаете функцию сохранения данных на сервер. А чтобы не перенагружать сервер применяйте функцию типа lodash.debounce:
Если текст не печатают пол секунды — отправить на сервер
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
hzzzzl
@hzzzzl
если сохранять на стороне клиента то так например
https://codepen.io/anon/pen/dEYpMQ?editors=1010
Ответ написан
Комментировать
@Kirill-Gorelov
С ума с IT
Я делал по другому, такую же задачу.

Когда в вели к текстра текст и убрали мышку, при помощи onchenge отлавливал это событие и отправлял запрос к себе в БД.
Вы можете хоть в куки писать, хоть в локалсторадже.
Отправлять запрос при каждым keyup это неправильно, много запросов может быть.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы