Сохранение данных формы в формате JSON на локальном компьютере — пользовательский интерфейс на основе DOJO

#json #forms #dojo #save

#json #формы #dojo #Сохранить

Вопрос:

У нас есть портальное приложение на основе Liferay. В одном из портлетов мы разработали пользовательский интерфейс с использованием компонентов DOJO. Я хотел бы получить несколько предложений по реализации следующей функциональности.

  1. Сохранить на локальный Эта функция помогает пользователю сохранять данные формы на локальном компьютере. Как достичь этой части? Вот подход, о котором я думаю.

    • Данные формы могут быть сохранены в формате JSON.
    • Прикрепите событие onchange ко всем компонентам пользовательского интерфейса и создайте JSON-объект, который содержит идентификатор компонента пользовательского интерфейса и значение.
    • Сериализуйте всю структуру JSON с помощью метода toJSON библиотеки DOJO, когда пользователь нажимает Сохранить в Local. Но у меня здесь есть несколько вопросов. Q1.Как я могу открыть диалоговое окно сохранения, чтобы пользователь мог выбрать путь к каталогу и назначить имя файла.В этом потоке не происходит взаимодействия с сервером. Вызов диалогового окна сохранения может произойти с клиента (т. е. из java script). Q2. Возможно ли сохранить данные формы на локальном компьютере без какого-либо взаимодействия с сервером или нет? ie. Возможно ли это для сохранения данных в локальном формате, если я отправлю данные формы на сервер через AJAX, а затем получу ответ в виде гиперссылки JSON?
  2. Загрузка с локального. При нажатии этой кнопки сохраненные данные JSON будут загружены в пользовательский интерфейс, и значения формы должны быть установлены? Вопрос 1. Как я могу открыть диалоговое окно файла для выбора файла JSON и проанализировать данные? Я думаю, что FromJSON можно использовать для синтаксического анализа строки JSON и создания объекта JSON. Но могу ли я читать из локального файла?

Ответ №1:

Я думаю, что для сценария сохранения в локальный требуется взаимодействие с сервером. Когда пользователь нажимает кнопку сохранить, данные формы извлекаются путем повторения всех виджетов или с помощью dojo.formToJson . Затем сериализованная строка JSON отправляется на сервер, и сервер возвращает URL-адрес с соответствующими заголовками HTTP для загрузки браузером.

Для сценария загрузки из локального вы можете добавить файл ввода на страницу, чтобы позволить пользователю загружать файл JSON. После успешной загрузки файла клиент может отправить запрос на сервер для извлечения данных JSON с помощью XMLHttpRequest, а затем использовать данные для установки значений элементов управления.

Комментарии:

1. Алекс, большое спасибо за твой вклад. Позвольте мне попробовать этот подход. Даже я также думаю, что для достижения этого я не могу избежать взаимодействия с сервером через AJAX.