[Настройка] Обращение к объектам, методам, и скриптам на Javascript

Описание настройки чего либо

Модераторы: immortal, newz20

Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

[Настройка] Обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Вт апр 18, 2017 8:17 pm

Часто бывает необходимо обратиться к объектам из Javascript, а для этого есть jQuery, а именно $.get
желательно иметь это описание в одном месте, поэтому создаю тут (нужно дополнять):

Запуск метода у объекта:

Код: Выделить всё

$.get( "/objects/", { object:"ИмяОбъекта", op:"m",m:"ИмяМетода", task:"ПередаваемыйПараметр" } ); 
Получение значения свойства у объекта:

Код: Выделить всё

$.get("/objects/", { object:"ИмяОбъекта", op:"get", p:"ИмяСвойства" }).done(function(data) {
   alert("Полученное значения:" + data); 
}); 
Запуск скрипта(сценария) с параметром:

Код: Выделить всё

$.get( "/objects/", { script:"ИмяСкрипта", ИмяПередаваемогоПараметра: "ЗначениеПараметра" } ).done(function( data ) {
    alert( "Data Loaded: " + data );
  });
или

Код: Выделить всё

$.get('/objects/?script=ИмяСкрипта&ИмяПараметра1=ЗначениеПараметра1&ИмяПараметра2=ЗначениеПараметра2');

Запуск скрипта(сценария) без параметра:

Код: Выделить всё

$.get('/objects/?script=ИмяСкрипта'); 
Установка значения свойства (не уверен, поправьте если ошибся):

Код: Выделить всё

$.get( "/objects/", { object:"ИмяОбъекта", op:"set",p:"ИмяСвойства", v:"ПередаваемоеЗначение" } );
Последний раз редактировалось Vovix Вт апр 18, 2017 11:52 pm, всего редактировалось 1 раз.
За это сообщение автора Vovix поблагодарили (всего 7):
directman66 (Ср апр 19, 2017 12:59 pm) • ipz (Пн май 08, 2017 11:46 pm) • denis (Вс июл 02, 2017 11:05 pm) • Gelezako (Вс янв 14, 2018 9:46 pm) • ypiter2006 (Сб янв 27, 2018 8:54 pm) • odinvolk (Чт апр 05, 2018 3:46 am) • TimonDK (Сб сен 15, 2018 1:11 pm)
Рейтинг: 8.86%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
skysilver
Сообщения: 2687
Зарегистрирован: Чт авг 21, 2014 8:28 am
Откуда: Киров, Россия
Благодарил (а): 348 раз
Поблагодарили: 1556 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение skysilver » Вт апр 18, 2017 10:56 pm

Есть файл js/scripts.js, в котором уже имеются подобные функции.

Код: Выделить всё

function callMethod(method_name, optional_params)
function runScript(script_name, optional_params) 
function ajaxGetGlobal(varname, id, timeout) 
function ajaxSetGlobal(varname, value) 
Также там есть более общая функция

Код: Выделить всё

function AJAXRequest(url, ready_function, first_param, proc_function)
которая позволяет выполнить произвольный get-запрос с параметрами, и при желании обработать результат выполнения в callback-функции.
За это сообщение автора skysilver поблагодарили (всего 4):
Vovix (Вт апр 18, 2017 11:22 pm) • Gelezako (Вс янв 14, 2018 9:44 pm) • ypiter2006 (Сб янв 27, 2018 8:54 pm) • odinvolk (Чт апр 05, 2018 3:47 am)
Рейтинг: 5.06%
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Вт апр 18, 2017 11:43 pm

skysilver писал(а):Есть файл js/scripts.js, в котором уже имеются подобные функции.

Код: Выделить всё

function callMethod(method_name, optional_params)
function runScript(script_name, optional_params) 
function ajaxGetGlobal(varname, id, timeout) 
function ajaxSetGlobal(varname, value)
Также там есть более общая функция

Код: Выделить всё

function AJAXRequest(url, ready_function, first_param, proc_function) 
которая позволяет выполнить произвольный get-запрос с параметрами, и при желании обработать результат выполнения в callback-функции.
я сейчас посмотрел файл js/scripts.js!
по сути там короткий код обертки методов Ajax.
Что-то мне подсказывает, что и предложенные выше и взятые от сюда функции имеют право жить!!!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
directman66
Сообщения: 2555
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 361 раз
Поблагодарили: 546 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение directman66 » Ср апр 19, 2017 10:26 pm

Может кто сможет прикрутить ява кнопкам обратную связь по свойству объекта. viewtopic.php?f=4&t=490&start=20
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 WhatsApp
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Ср апр 19, 2017 11:30 pm

directman66 писал(а):Может кто сможет прикрутить ява кнопкам обратную связь по свойству объекта. viewtopic.php?f=4&t=490&start=20
у меня это сделано в TO DO - viewtopic.php?f=4&t=2613
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Ср апр 19, 2017 11:45 pm

ну или суть такая:

создаем в javascript периодический таймер и пример HTML далее:

Код: Выделить всё

<script type="text/javascript">
setInterval(function() {  

$.get("../objects/", { object:"ИмяОбъекта", op:"get", p:"ИмяСвойства" }).done(function(data) {
 $("#ссс1").html(data);
}); 
}, 1000);
</script>
<span id="ccc1"></span>
вставьте это например в чистую домашнюю страницу (заменив на свои значения Имена) и попробуйте, при изменении свойства у вас будет меняться значение! этого всего в обычных условиях можно достичь через
вставку %ИмяОбъекта.ИмяСвойства% но это в PHP или HTML
а вот когда нужно через javascript, то можно так поизвращаться!
За это сообщение автора Vovix поблагодарил:
Svetлая (Пт мар 22, 2019 1:38 pm)
Рейтинг: 1.27%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
directman66
Сообщения: 2555
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 361 раз
Поблагодарили: 546 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение directman66 » Чт апр 20, 2017 7:31 am

вставил в меню html блок
СпойлерПоказать
<script type="text/javascript">
setInterval(function() {

$.get("../objects/", { object:"Relay01", op:"get", p:"status" }).done(function(data) {
$("#ссс1").html(data);
});
}, 1000);
</script>
relay01
<span id="ccc1"></span>
и результат не наблюдаю, на домашней странице тоже самое.
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 WhatsApp
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Чт апр 20, 2017 11:47 am

directman66 писал(а):вставил в меню html блок
СпойлерПоказать
<script type="text/javascript">
setInterval(function() {

$.get("../objects/", { object:"Relay01", op:"get", p:"status" }).done(function(data) {
$("#ссс1").html(data);
});
}, 1000);
</script>
relay01
<span id="ccc1"></span>
и результат не наблюдаю, на домашней странице тоже самое.
перепроверил, может ccc я по русски писал, попробуйте вот так (у меня проверил, реально работает):
СпойлерПоказать

Код: Выделить всё

<script type="text/javascript">
setInterval(function() {  

$.get("../objects/", { object:"ThisComputer", op:"get", p:"timeNow" }).done(function(data) {
 $("#zzz1").html(data);
}); 
}, 1000);
</script>
<span id="zzz1"></span>
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
directman66
Сообщения: 2555
Зарегистрирован: Пн дек 26, 2016 9:51 am
Откуда: Екатеринбург
Благодарил (а): 361 раз
Поблагодарили: 546 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение directman66 » Чт апр 20, 2017 11:59 am

Почему-то не работает таймер
СпойлерПоказать
Изображение
Отправлено с моего Redmi Note 3 через Tapatalk
Если вам помогло данное сообщение, не поленитесь нажать кнопку "спасибо".
CONNECT | Оборудование | Блог | Дополнения | Email | Telegram | +79122962262 WhatsApp
Аватара пользователя
Vovix
Сообщения: 1149
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 58 раз
Поблагодарили: 489 раз
Контактная информация:

Re: обращение к объектам, методам, и скриптам на Javascript

Сообщение Vovix » Чт апр 20, 2017 12:21 pm

тогда не могу сказать! я проверил в домашней странице! точно работает!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Ответить