URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 8239
[ Назад ]

Исходное сообщение
"динамическое создание кнопок"

Отправлено parad , 27-Дек-20 23:35 
привет, мир!
абсолютно не html/js разработчик. собственно требования в дизайне нет никакого.
есть сервак, для которого сделал html-страничку, получающую через веб-сокеты от сервера json со списком текущих сервисов и их состояние. для каждого сервиса должно быть две кнопки: старт и стоп.
сделал фронтенд страничку, на которой через вебсокет выдаю таблицу сервисов, состояние и счетчики определенные. выглядит это так:

<html>
    <head>
        <meta charset="utf-8" />
        <script language="javascript" type="text/javascript">
            var ws = new WebSocket( 'ws://' + location.host + '/services/state.json' );
            if( ! window.console )
                { window.console = { log: function() {} } };
            ws.onopen = function( ev )  { console.log( ev ); };
            ws.onerror = function( ev ) { console.log( ev ); };
            ws.onclose = function( ev ) { console.log( ev ); };
            ws.onmessage = function( ev ) {
                console.log( ev );
                var data = JSON.parse( ev.data ).data;
                var table = '';
                table += '<table border="1">';
                for( var i in data ) {
                    var service = data[ i ];
                    table += '<tr>';
                    table += '<td>' + service.name + '</td>';
                    table += '<td>' + service.state + '</td>';
                    table += '<td>' + service.failedCounter + '/' + service.failedLimit + '</td>';
                    table += '<td><button href="" type="button">СТАРТ</button></td>';
                    table += '<td><button href="" type="button">СТОП</button></td>';
                    table += '</tr>';
                }
                table += '</table>';
                messages = document.getElementById( 'state' );
                messages.innerHTML = table;
            };
        </script>
    </head>
    <body>
        <div class="content">
            <h1>сервисы</h1>
            <a href="/services/state.json">скачать слепок</a>
            <div id="state"/>
        </div>
    </body>
</html>

необходимо добавить реакцию на динамически созданные кнопки СТАРТ/СТОП для каждого сервиса, так чтобы дергался определенный урл гет-запросом ( к примеру '/some/url?service=name&action=STOP' ), так чтобы не покидать страницу.

подскажите как проще всего это добавить в существующий код, прям самый простой способ.
спасибо.


Содержание

Сообщения в этом обсуждении
"динамическое создание кнопок"
Отправлено Аноним , 29-Дек-20 14:24 
Утилиты и тем более админские на браузерном жыэс - это уже слишком.

"динамическое создание кнопок"
Отправлено parad , 29-Дек-20 21:15 
> Утилиты и тем более админские на браузерном жыэс - это уже слишком.

ага, спасибо за анализ и высокую оценку работы, безпреценднентно высокую прницательность. очень важный и полезый комментарий.
эта морда какраз не для админов. у админов все есть.

пс. напиши свой комментарий в список рассылки webmin, netdata, nagios - какие там еще есть админские веб-тулы... ну и слепо можешь слать свой комментарий в яндекс, гугл, фейсбук, мейлу - они давно ждут такого джедая, чтоб пришел научил.


"динамическое создание кнопок"
Отправлено Юрий В. А. , 04-Апр-21 17:31 
Можно вначале сделать ссылку-кнопку на этот запрос, которая откроется в новой вкладке, а потом закрыть эту вкладку посредством vbscript. Но работать такое будет только в Виндовс и только в старых версиях ИЕ.

"динамическое создание кнопок"
Отправлено fantom , 09-Июн-21 15:26 
>[оверквотинг удален]
> <div id="state"/>
>         </div>
>     </body>
> </html>
> необходимо добавить реакцию на динамически созданные кнопки СТАРТ/СТОП для каждого сервиса,
> так чтобы дергался определенный урл гет-запросом ( к примеру '/some/url?service=name&action=STOP'
> ), так чтобы не покидать страницу.
> подскажите как проще всего это добавить в существующий код, прям самый простой
> способ.
> спасибо.

Что-то типа

var xhr = new XMLHttpRequest();
xhr.open("GET", "URL", true);
xhr.send();

Не прокатит??


"динамическое создание кнопок"
Отправлено ShyLion , 03-Июл-21 13:15 
> привет, мир!
> абсолютно не html/js разработчик. собственно требования в дизайне нет никакого.

Настоятельно рекомендую ознакомится с jQuery как со средством манипулирования DOM, так и его функцией ajax.

Мне, как наколеночному пейсателю всякого админского для работы, очень сильно помогло и открыло целый новый мир.

ЗЫ: а потом я еще освоил golang и настало полное счастье.