01 |
О базовой реализации индикатора прогресса в статье Как сделать индикатор прогресса (ProgressBar) обновляющийся с сервера (ASP.NET, AJAX, JQuery) - часть 1. |
|
02 |
Первое, что приходит на ум, для того чтобы расширить возможности нашего прогресс-бара — записывать в кэш не строковые или числовые данные, а данные в формате JSON. Как вы понимаете, структура объекта JSON ограничена лишь вашими фантазиями. Я покажу на простом примере, а вам уже дальше в случае необходимости не составит труда расширить возможности, внеся соответствующие изменения. |
JSON (англ. JavaScript Object Notation) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.
|
03 | На заметку: |
О том как отправлять данные в формате JSON можно прочитать в статье Как сделать так, чтобы контроллер вернул данные в формате JSON.
|
|
04 |
Теперь определимся со структурой JSON-объекта для нашего прогресс-бара. Добавим в наш проект Codius.SimpleProgressBar_v1.0.rar (47,0 KB) из первой части класс ProgressData: |
|
05 | VB.NET |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Imports System.Runtime.Serialization
Imports System.Runtime.Serialization.Json
<DataContract()>
Public Class ProgressData ... |
ProgressData.vb
|
06 | На заметку: |
Если проект создается с нуля, возможно понадобится добавить в проект референс на пространство имен System.Runtime.Serialization.
|
|
07 |
В классе ProgressManager и в интерфейсе IProgressManager удаляем процедуры: |
|
08 |
|
|
09 |
Изменяем интерфейс IProgressManager: |
|
10 | VB.NET |
1 2 3 4 5 6 Namespace Framework.Abstractions ... |
IProgressManager.vb
|
11 |
И добавляем небольшой фрагмент кода в объект ProgressManager (измененная реализация метода SetCompleted). Поскольку JSON это текстовый формат обмена данными, то и тип данных, передаваемый в кэш, будет String: |
|
12 | VB.NET |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 Imports Codius.Framework.Abstractions
Imports System.Runtime.Serialization.Json
Imports System.IO
Namespace Framework ... |
ProgressManager.vb
|
13 |
В общем-то и все, остается на сервере адаптировать процедуру информирования: |
|
14 | VB.NET |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 Imports Codius.Framework
Imports System.Threading
Public Class HomeController ... |
HomeController.vb
|
15 |
... и на клиенте распарсить получаемые данные и преподнести пользователю: |
|
16 | HTML |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 @Code
Layout Nothing
End Code
<!DOCTYPE html>
<html> ... |
Index.vbhtml
|
17 |
|
Вы можете дополнить объект ProgressData по своему усмотрению.
|
18 | На заметку: |
Файл проекта можно скачать по ссылке Codius.ExtProgressBar_v1.0.rar (46,8 KB).
Проект создан в Visual Studio 2013 Ultimate.
|
|
20 |
Похожие запросы:
|
|