Обработка данных JSON в браузере



 

В браузере чаще всего JSON используется совместно с библиотеками javascript, в нашем случае jquery.Запрос библиотеки jquery выглядит следующим образом (листинг 4.1) [141]:

 

$.ajax({ url: url, dataType:'json',data: data, success: callback});

Листинг 4.1 – Запросбиблиотекиjquery

 

Здесь url— url-адрес, по которому будет отправлен запрос; data— данные, которые будут отправлены на сервер (они должны быть представлены объектом, в формате:{fName1:value1, fName2:value2, ...}); callback(data, textStatus)— пользовательская функция, которая будет вызвана после ответа сервера; data— данные, присланные с сервера; textStatus— статус того, как был выполнен запрос.

С помощью данной функции библиотеки jqueryпроизводитсязапросjson-данныху сервера, методом GET, без перезагрузки страницы.

Приём и передача запроса может происходить с помощью разных сетевых протоколов, в нашем случае - теле - HTTPзапроса.Полученные в результате запроса данные, можно получить в обработчике удачного выполнения запроса.

AJAX представляет собой технологию взаимодействия Javascript'ом, работающим в браузерес сервером [142].

ТехнологияAJAX(АсинхронныйJavaScript и XML) представляет собой технологию асинхронноговзаимодействия между клиентом и сервером. Благодаря ее использованию мы можем отправлять запросы к серверу и получать от него ответы без перезагрузки страницы в фоновом режиме, без перезагрузки всей страницы [142].

Обработка данных JSON в контроллере

В контроллере работа с форматом JSON организуется с помощью библиотеки Newton.JSON [141].

При получении запроса от кода javascriptтипа/Main/Index, контроллер передает обработку запроса действию Index.

Методы действий (actionmethods)представляют такие методы контроллера, которые обрабатывают запросы по определенномуURL.

Запросы бывают разных типов, например, GET и POST. Фреймворк ASP.NET MVC позволяет определить тип обрабатываемого запроса для действия, применив к нему соответствующий атрибут: [HttpGet], [HttpPost], [HttpDelete] или [HttpPut].

В отличие от POST-запросов при GET-запросах все параметры передаются в строке запроса. Стандартный get-запрос принимает примерно следующую форму:название_ресурса?параметр1=значение1&параметр2=значение2.

Инфраструктура ASP.NET MVC Framework существенно упрощает создание метода действия, который генерирует данные JSON. Объект JsonResult создается вызовом метода Controller.Json() внутри метода действия с передачей ему данных, которые необходимо преобразовать в формат JSON [143].

Обычно требуется провести определенную подготовку данных, которые необходимо отправлять клиенту. JSON имеет простой формат, но создавать строку JSON вручную достаточно утомительно. Большинство языков программирования имеют инструменты для простого преобразования переменных в строки JSON и наоборот. MVC автоматически сериализует объект вJSONи записывает JSON в тело сообщения ответа [141].

Сериализация — это процесс перевода структуры данных в последовательность битов, или же в другую структуру данных, которую удобно хранить, передавать [144].

Для сериализации объектов в формат JSON в пространстве System.Runtime.Serialization.Json определен класс DataContractJsonSerializer. Чтобы задействовать этот класс, в проект надо добавить сборку System.Runtime.Serialization.dll. Для записи объектов в json-файл в этом классе имеется метод WriteObject(), а для чтения ранее сериализованных объектов - метод ReadObject(). Рассмотрим их применение.

Для сериализации существует метод действия GetUserDataJson() в контроллере Main, обеспечивающий подготовку данных перед их передачей методу Json(). Метод возвращает код 200 с телом ответа JSON. Конечную структуру приложения нагляднее всего изобразить с помощью UML-диаграммы. На рисунке ниже представлена UML – диаграмма основных классов программного комплекса:

 

 

Рисунок 4.4– Диаграмма классов программного комплекса

UML (англ. Unified Modeling Language — унифицированный язык моделирования) — язык графического описания для объектного моделирования в области разработки программного обеспечения [154]. Диаграмма классов UML позволяет обозначать отношения между классами и их функциями в программном коде.

В программе на стороне клиента создан класс NetworkGraph, включающий в себя следующие методы:

· changeGraph() – метод смены графовой модели в зависимости от темы;

· clearEpidemic() – метод очищения эпидемии для текущей темы;

· doWBPrint() – метод переключения режима чёрно-белого изображения для печати;

· generateNet() – метод генерирования случайной сети;

· loadMicrofractalFromFile() – метод загрузки микрофрактала из файла;

· loadNetFromFile() – метод загрузки сети из файла;

· makeRelay() – метод производства переукладки графа;

· minimizeNet() – метод свёртки графа;

· netStatistic() – метод получения статистики по графу;

· refreshNet() – метод обновления сети;

· startEpidemi() – метод начала эпидемии.

Данные методывеб-страницы с помощью ajax–запросов вызывают соответствующие методы Mainконтроллера. В контроллер поступают данные из моделей, обрабатываются и возвращаются в ответе на ajax-запрос для дальнейшей обработки и вывода данных на стороне клиента.

 

4.3Технологическое обеспечение программного комплекса

 

           Разработанный программный комплекс построен по клиент-серверной технологии и представляет собой веб-приложение, базирующеесяна платформе .NET.Данная платформа поставляется вместе сосвободно распространяемым фреймворком ASP.NET MVC 5, использованным при написании программного комплекса [143].

ASP.NET(ActiveServerPages для .NET) — технология создания веб-приложений и веб-сервисов от компании Майкрософт.

Помимо.NET – технологий, в работе использованы другие технологии для введения дополнительных возможностей в функционал системы.

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

 

4.3.1 Технология ASP.NETMVC 5

Технология ASP.NETMVC 5является базовой, на которой строится вся работа разработанного программного обеспечения. В основе данной технологии лежит паттерн программирования MVC («модель-представление-контроллер»). Схема технологии представлена на рисунке ниже (рисунок 4.5) [143].

 

Передача представления пользователю
Передача данных из модели
Изменение модели данных
Обращение к модели данных
Передача вызовов
Получение данных от пользователя
Контроллер
Представление
Модель
Пользователь
Модули контроллера
Интерфейсы представления  
Модули модели

 


Рисунок 4.5 – Структурно-функциональная схема комплекса с применением технологии ASP.NETMVC 5

 

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

Функциональное взаимодействие удобно отображать с помощью блоковой архитектуры. Рассмотрим взаимодействие элементов каждого из компонентов приложения[141].

Концепция MVC - шаблон проектирования, с помощью которого модель приложения, пользовательский интерфейс и взаимодействие с пользователем разделены на три отдельных компонента таким образом, чтобы модификация одного из компонентов оказывала минимальное воздействие на остальные [141].

Деление логики в концепции MVC происходит по следующим компонентам:

1. Контроллер.

2. Представление.

3. Модель.

Контроллер – это набор классов, являющийся связующим звеном между моделью и пользователем (клиентом). Задача контроллера обработать запрос клиента, чтобы затем выдать результат обработки в виде представления. Контроллер обеспечивает обработку данных, вычисление алгоритмов и построением модели.

Каждый класс контроллера взаимодействует с конкретной функциональной библиотекой и отвечает за обработку только определенных запросов пользователя.

Представлением является то, что пользователь непосредственно видит при работе с сервером. Представление - это html страница, с файлом стилей css и кодом javaScript. В результате работы контроллера, клиенту возвращается представление, содержащее ответные данные, запрошенные пользователем [141,143].

Модель – это набор классов, отвечающих за хранение и обработку данных, циркулирующих в программе.

 


Дата добавления: 2018-04-04; просмотров: 421; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!