Я не программист, у меня нет компьютерного образования.
С другой стороны, вся моя жизнь связана с техникой связи и компьютерами.
К языкам программирования у меня отношение... хорошее.
Достаточно хорошее, чтобы при необходимости поправить чужой код либо сделать пару-тройку своих проектов.
Меня всегда умиляли разговоры на форумах о том, что некто уже 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){что-то делаю с полученными данными});
Дополнено:
Посмотрел немного на инспекторы броузеров - для Firekox сейчас актуальна версия FireDebug ver.1.12. Если бы вовремя обновил установленную версию - спал бы на одну ночь больше :)