• Авторизация


Конспект одного решения 26-12-2013 00:01 к комментариям - к полной версии - понравилось!


[210x124]

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

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

Меня всегда умиляли разговоры на форумах о том, что некто уже n-лет как пишет на С++ и он-де ничего не понимает в, например, С# или Java. Умиляли в том смысле, что его "непонимание" гораздо более содержательно, нежели все мои представления о предмете.

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

Итак, на производстве сдали в работу пульт оператора. На экране - порядка 200 параметров. Некоторые критические, поэтому ко мне обратился инженер по автоматике и попросил попробовать выделить цветом критические зоны.
Так как информация передается на пульт как обычная веб-страница, то я сложностей не предвидел и взялся за работу.

Весь проект сделан в IDE iX developer 2.0 от Beijer Electronics
Веб-сервер интегрирован в среду разработки и не документирован.

Код страницы содержит ссылку на SDK/API, написанные на javascript с использованием jQuery и JSON.
Первое ощущение засады появилось после того, когда обратил внимание, как данные получают с сервера и отображают на странице.
Созданы некие собственные атрибуты, которые официально должны отрабатывать с html-тегом SPAN. Далее, по вызову API формируется ajax-запрос к серверу, а полученные данные возвращаются через DOM.
Другими словами, любые параметры я могу лишь вызвать и отобразить на странице, но не получить как переменную для javascript для использования в коде страницы.
Мысль первая (правильная) - найти описание API. Описание разыскал. но нужного мне фукционала не нашел.
Мысль вторая - посмотреть и доработать код API "по образу и подобию". После небольшого углубления в тему понял, что этот путь не столь короткий, да и не вполне разумный - после заводского апдейта проекта мой код будет утерян.
Тогда остался единственный путь - запрашивать значение переменной непосредственно из кода страницы, но тем же способом, как это делает API.
Имя переменной в проекте, которая мне нужна - известна.
Метод скопировал из API. Как формируется тело запроса посмотрел через инспектор Firefox-a.

code:
.ajax({
url:'/tagbatch',
type:"POST",
data:'тело запроса',
contentType:"application/json",
dataType:"json",
cache: false,
success: function(data){что-то делаю с полученными данными});

Осталось разобрать ответ. На мое удивление, ответ сервера на мой post-запрос без проблем смог посмотреть в инспекторе Google Chrome (и что вообще не смог сделать в инспекторе  Firefox !). Теперь зная, как именует переменные сервер осталось только эти переменные выбрать и применить.

Про остальные детали скажу коротко: вызов оформил как функцию, которую вызываю по таймеру.

Просто.
Простой результат после двух ночей упорного движения к поставленной цели.
Результат: вышел на новый уровень владения технологиями программирования.

 

Дополнено:

Посмотрел немного на инспекторы броузеров - для Firekox сейчас актуальна версия FireDebug ver.1.12. Если бы вовремя обновил установленную версию - спал бы на одну ночь больше :)

вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Конспект одного решения | a1addin - Письма себе | Лента друзей a1addin / Полная версия Добавить в друзья Страницы: раньше»