
Мицросеми АН1256 Web Програмерс Апплицатион

Увод
ЈСОН (ЈаваСцрипт Објецт Нотатион) је отворени стандард file формат који користи текст читљив за људе за размену података. То је уобичајени формат података који се користи за асинхрону комуникацију претраживач/сервер.
За ново web дизајн странице, ЈСОН формат може бити замена за оригинални АЈАКС стил. У поређењу са АЈАКС-ом, коришћење ЈСОН-а чини Web имплементација лакша и једноставнија. Програмер треба да се фокусира само на web дизајн странице и Web Имплементација руковаоца може бити изостављена јер је ЈСОН метода приступа већ подржана у сваком од њих WebСтаКс софтверски модули.
Овај документ наводи водич за програмере за софтверског инжењера који треба да развије Web страница преко ЈСОН-а. Детаљне процедуре и прampлес такође укључен у следеће одељке.
ЈСОН ток приступа подацима
Готовоview
Ево тока приступа ЈСОН подацима којим се ХТТП веза покреће од клијента (прегледача). ХТМЛ табела се креира динамички према примљеним ЈОСН подацима са стране сервера (ДУТ).
Слика 1. Ток приступа између клијента и сервера
Захтев/одговор ЈСОН подаци
Пакет ЈСОН захтева је заснован на методи објављивања ХТТП захтева и садржај мора да прати МСЦЦ ЈСОН формат.
- Захтевај ЈСОН синтаксу:{“метод”:” ”,”парамс”:[ ], “ид:”јсонрпц”}
- ЈСОН синтакса одговора: {“грешка”: "резултат": , “ид:”јсонрпц”}
Следећи снимци приказују ЈСОН садржај између прегледача и ДУТ-а.
Слика 2. Снимак ХТТП захтева од клијента
Слика 3. Снимак ХТТП одговора са сервера
МСЦЦ ЈСОН спецификација
Да бисте добили потпуне ЈСОН информације укључујући метод, параметар, опис итд. Откуцајте „хттп:// /јсон_спец“ на адресној траци прегледача. Постоји још један метод приступа преко назива ЈСОН методе „јсонРпц.статус.интроспецтион.специфиц.инвентори.гет“, користи се за одређени метод.
Слика 4. Снимак ЈСОН спецификације web страница
Web оквир
Тхе Web оквир у WebСтаКс софтвер је заснован на МооТоолс отвореног кода. То је колекција ЈаваСцрипт услужних програма са МИТ лиценцом. (http://mootools.net/license.txt) Трака менија и већина web странице су засноване на оквиру. И АЈАКС и ЈСОН алгоритам су већ интегрисани у његове услужне програме.
Осим тога, WebСтаКс софтвер пружа друге услужне програме који су корисни за ЈСОН web дизајн странице.
- јсон.јс – Користите за за пренос/примање динамичких података са ЈСОН синтаксом.
- динформс.јс – Користи се за динамичко креирање ХТМЛ табеле.
- валидате.јс – Користи се за проверу ваљаности ХТМЛ обрасца.
Пуне ЈаваСцрипт библиотеке се налазе у директоријуму изворног стабла: webстак2\ втсс_аппл\web\хтмл\либ.
Смернице за ЈСОН Web дизајн странице
Овај одељак наводи како да дизајнирате а web страница заснована на МСЦЦ ЈаваСцрипт библиотекама. Користимо глобално конфигурисано огледало web страница као бившиampле хере. Асинхрона комуникација је заснована на ХТТП ЈСОН методу приступа и сви глобално конфигурисани параметри су наведени у једној динамичкој ХТМЛ табели.
Тхе web изглед странице је наведен испод, а цео изворни код се налази у директоријуму изворног стабла: webстак2\втсс_аппл\миррор\хтмл\миррор_цтрл.хтм. Да будем типичнији web странице референце, погледајте одељак додатка.
Табела конфигурације огледала и огледала
Слика 5. Exampле глобално конфигурисане табеле
Уреди Web страница
ХТМЛ заглавље
Укључите потребне ЈС библиотеке у ХТМЛ tag.
Иницијализујте ресурс динамичке табеле
- Када је ХТМЛ документ спреман, позовите ДинамицТабле() да бисте иницијализовали ресурс динамичке табеле.
- ДинамицТабле() се користи за креирање динамичке табеле након пријема ЈСОН података.
- Затим ће позвати рекуестУпдате да покрене ток ЈСОН команде.
- виндов.аддЕвент('домреади', фунцтион() {
- // Креирајте образац са телом табеле за пријем/пренос ЈСОН података
- миДинамицТабле = нев ДинамицТабле(“миТаблеЦонтент”, “цонфиг”,”плусРовЦтрлБар”);
4 - рекуестУпдате();
- });
Захтев/одговор ЈСОН подаци
- Када је ХТМЛ документ спреман, користите рекуестЈсонДоц() да пошаљете ЈСОН захтев „миррор.цонфиг.сессион.гет“ да бисте добили информације о конфигурисаним сесијама.
- Након што су ЈСОН подаци за „миррор.цапабилитиес.гет“ примљени, функција повратног позива рекуестУпдате() ће бити обрађена. Функција рекуестУпдате ће затим позвати „миррор.цонфиг.сессион.гет“ да добије тренутну конфигурацију. Када се прими тренутна конфигурација, позива се функција процессУпдате да направи табелу која ће бити приказана.
- функција рекуестУпдате()
- {
- // Врати садржај табеле
- миДинамицТабле.ресторе();
5 - // Ова табела два ЈСОН података.
- рекуестЈсонДоц(“миррор.цонфиг.сессион.гет”, нулл, процессУпдате, “цонфиг”);
- }
Обрадите примљене ЈСОН податке
- Функција процессУпдате() се користи за постављање динамичке табеле након пријема ЈСОН података.
- АддРовс() се користи за додавање редова табеле. миДинамицТабле.упдате() распоред тхе
ХТМЛ табела према подацима у редовима табеле.
- функција процессУпдате(рецв_јсон, име)
- {
- // Занемари процес ако се не прими ниједан податак
- иф (!рецв_јсон) {
- алерт(„Добијање динамичких података није успело.“);
- повратак;
- }
- // Сачувајте примљене ЈСОН податке
- миДинамицТабле.савеРецвЈсон(“цонфиг”, рецв_јсон);
- // Додај редове табеле
- вар табле_ровс = аддРовс(рецв_јсон);
- миДинамицТабле.аддРовс(табле_ровс);
- // Ажурирај ову динамичку табелу
- миДинамицТабле.упдате();
- // Тајмер за освежавање
- вар ауторефресх = доцумент.гетЕлементБиИд(“ауторефресх”);
- иф (ауторефресх && ауторефресх.цхецкед) {
- иф (ИД тајмера) {
- цлеарТимеоут(тимерИД);
- }
- тимерИД = сетТимеоут('рекуестУпдате()', сеттингсРефресхИнтервал());
- }
- }
Додајте редове табеле
- У функцији аддРовс() користимо ЈСОН формат да попунимо сваки глобални конфигурисани параметар у реду табеле.
- Сва ХТМЛ поља су наведена у ЈСОН низу („табле_ровс“), а синтакса поља табеле је испод.
Синтакса:
table_rows:[<row_0>, <row_1>, …<row_n>]
<row_n>: {<field_0>, <field_1>, …<field_n>}
: {"тип": , „парамс“:[ , , …, ]}
- У овом случају, сваки ред има пет поља: „ИД сесије“, „Режим“, „Тип“, „ВЛАН ИД“ и „Рефлецтор Порт“ нпр.ampле,
| ИД сесије (Поље за име: инт32_т) | 1 (ИД сесије огледала) |
| Режим (Поље за име: втсс_боол_т) | истина (Што значи да је сесија огледала омогућена) |
| Тип (Поље за име: набрајање
{миррор, рМиррорСоурце, рМиррорДестинатион} |
РМиррор Соурце (ово је извор сесије удаљеног огледала |
| ВЛАН ИД (Поље за име: уинт16_т) | 200 (влан који се користи за пресликавање) |
| Рефлектор Порт (Поље за име: втсс_ифиндек_т) | Ги 1/1 (Лук на који се шаље пресликани саобраћај |
- МиДинамицТабле.аддРовс() ће конвертовати ЈСОН податке у ХТМЛ формат и исписати ХТМЛ табелу.
- функција аддРов(кључ, вал)
- {
- вар ноне_мап_вал = 0кФФФФФФФФ, ноне_мап_тект = “Ништа”, ноне_интерфаце_тект = “НОНЕ”;
- вар туннел_моде_суффик = вал.ТуннелМоде == “усеглобал” ? ” (” + оТТуннелМоде[оВТуннелМоде.индекОф(глобал_цонф.туннелМоде)] + “)” : “”;
- вар ров = {фиелдс:[
- {типе:”линк”, парамс:[“цр”, “миррор.хтм?сессион_ид=” + кључ, кључ]},
- {типе:”тект”, парамс:[оТМоде[оВМоде.индекОф(вал.Моде)], “ц”]},
- {типе:”тект”, парамс:[оТТипе[оВТипе.индекОф(вал.Типе)], “ц”]},
- {типе:”тект”, парамс:[вал.Типе == “миррор” ? „-“:
вал.РМиррорВлан, “ц”]}, - {типе:”тект”, парамс:[вал.Типе == “рМиррорСоурце” ?
вал.РефлецторПорт : “-” , “ц”]} - ]};
- повратак ред;
- }
- функција аддРовс(рецв_јсон)
- {
- вар ров, емпти_цолспан = 7;
- вар табле_ровс = нев Арраи();
- // Додај заглавље табеле
- аддХеадер(табле_ровс);
- // Додај један ред
- Објецт.еацх(рецв_јсон, фунцтион(рецорд) {
- табле_ровс.пусх(аддРов(рецорд.кеи, рецорд.вал));
- });
- ретурн табле_ровс;
- }
Web страница помоћи
За web дизајн странице помоћи, опис помоћи може да се односи на ЈСОН спецификацију, да текст описа може бити у складу са ЈСОН излазом и помаже у смањењу сувишних описа. Прampовде је преузето из конфигурације релеја дхцп6.
Хипер-линк у извору file
Додели помоћ file локација у свом извору file ХТМЛ tag. Фиксно име променљиве „хелп_паге“ се користи за web задавање странице помоћи.
- // Магија странице помоћи
- вар хелп_паге = “/хелп/хелп_ккк.хтм”;
Ажурирајте опис ХТМЛ поља из ЈСОН спецификације
- Користите или ХТМЛ tag да декларишете опис ХТМЛ табеле и добијете јединствени ИД за tag.
- Када је ХТМЛ документ спреман, позовите лоадКСМЛДоц() да бисте добили целу ЈСОН спецификацију или добили опис специфичне методе помоћу назива ЈСОН методе „јсонРпц.статус.интроспецтион.специфиц.инвентори.гет“.
- ПроцесТаблеДесц() се користи за ажурирање описа табеле, а процессУпдате() се користи за ажурирање описа параметара табеле.
- У процесуУпдате(), позовите упдатеТаблеПарамсДесц() да бисте ажурирали ЈСОН елементе који се подударају са специфичним именима елемената.
- Ажурирајте или tag унутрашњи ХТМЛ према опису елемента.
- /* Ажурирајте ХТМЛ поља описа */
- функција процессТаблеДесц(рек) {
- иф (!рек.респонсеТект) {
- повратак;
- }
- вар јсон_спец = ЈСОН.децоде(рек.респонсеТект);
- // Ажурирај опис табеле
- $(“ТаблеДесц”).иннерХТМЛ = гетЈсонСпецЕлемент(јсон_спец, “гроупс”, “дхцп6_релаи.цонфиг.влан”).десцриптион;
- }
- /* Ажурирај опис параметра ХТМЛ табеле */
- фунцтион процессУпдате(рецв_јсон) {
- // Ажурирај опис параметара табеле
- вар парам_намес = [
- {
- „алиас“: „Интерфејс“,
- „тип“: „втсс_ифиндек_т“,
- “наме”: “вланИнтерфаце”,
- "суфикс": "."
- },
- {
- „алиас“: „Релејни интерфејс“,
- „тип“: „втсс_ифиндек_т“,
- “наме”: “релаиВланИнтерфаце”,
- "суфикс": ". ИД интерфејса који се користи за преношење."
- },
- {
- “алиас”: “Релаи Дестинатион”,
- „тип“: „меса_ипв6_т“,
- “наме”: “релаи_дестинатион”,
- "суфикс": ". ИПв6 адреса ДХЦПв6 сервера који захтева биће прослеђена. Подразумевана вредност „фф05::1:3“ је „било који ДХЦП сервер“.“
- }
- ];
- упдатеТаблеПарамсДесц(“ТаблеПарамсДесц”, рецв_јсон, “дхцп6_релаи.цонфиг.влан.гет”, парам_намес);
- }
- /* Добијте ЈСОН спецификацију */
- виндов.аддЕвент('домреади', фунцтион () {
- лоадКСМЛДоц(“/јсон_спец”, процессТаблеДесц);
- рекуестЈсонДоц(“јсонРпц.статус.интроспецтион.специфиц.инвентори.гет”, “дхцп6_релаи.цонфиг.влан”, процессУпдате);
- });
Хипер-линк у траци менија
- Изворни ХТМЛ код траке менија је генерисан из file webстак2\втсс_аппл\web\ мену_дефаулт.цкк.
- Уредите ставке у овоме file за Web хипервеза странице.
- #ако је дефинисан(ВТСС_СВ_ОПТИОН_ДХЦП6_РЕЛАИ)
- ИТЕМ(” Релеј,дхцп6_релаи.хтм”);
- #ендиф //ВТСС_СВ_ОПТИОН_ДХЦП6_РЕЛАИ
НАПОМЕНА
Обратите пажњу на број размака у ИТЕМ(“”), који се користи за одређивање нивоа групе у траци менија. У овом случају, све web странице су у групи „ДХЦПв6“.
Слика 6. Примampле глобално конфигурисане табеле
Додатак
Типично web странице
Постоји неколико типичних web странице се могу користити за референтни дизајн. Још један ексampОвде ће бити приказана конфигурација једне сесије огледала која се налази у втсс_аппл\миррор\хтмл\миррор.хтм.
Тхе web страница пружа детаљну конфигурацију за једну сесију огледала. Сви конфигурисани параметри су наведени.
- Кликните на дугме „Сачувај“ да бисте применили тренутну конфигурацију.
- Кликните на дугме „Ресетуј“ да бисте ресетовали тренутну конфигурацију.
- Кликните на „Откажи“ да бисте се вратили на крајview огледала сесија
Миррор&РМиррор конфигурација
Глобална подешавања
Конфигурација изворног ВЛАН-а![]()
Порт Цонфигуратион
Слика 7. Exampле детаљне конфигурације сесије огледала
Дугмад „Сачувај“, „Ресетуј“ и „Откажи“ додаје хтмл код:
ЈСОН ток команде
Ова страница захтева ток команди у два корака:
- Прво треба да добије могућности уређаја методом „миррор.цапабилитиес.гет“. Могућности се не мењају и морају се прочитати само једном.
- Затим треба да добије тренутну конфигурацију уређаја користећи методе „миррор.цонфиг.сессион.гет“, „порт.статус.гет“ и у случају слагања „топо.цонфиг.стацкинг.гет“.
Позив „миррор.цапабилитиес.гет“ иницира догађај „домреади“, а резултат је конфигурисан да њиме рукује функција рекуестУпдате.
РекуестУпдате ће покренути позив „миррор.цонфиг.сессион.гет“,
“порт.статус.гет” иу случају слагања “топо.цонфиг.стацкинг.гет” и резултати ових позива су конфигурисани да њима рукује функција реадиУпдате.
Функција реадиУпдате ће прикупити све резултате и тек када сви буду примљени позваће функцију процессУпдате која ће конструисати табеле које ће бити приказане на web.
Референце
- Википедиа ЈаваСцрипт https://en.wikipedia.org/wiki/JavaScript
- ЈСОН https://www.json.org/
- МоонТоолс https://mootools.net/
Документи / Ресурси
![]() | АН1256 Web Програмерс Апплицатион |
Референце
- Упутство за употребуmanual.tools

