Я помогаю с проектом с открытым исходным кодом.Это небольшой веб-сервер Go, работающий на устройстве, содержащем Raspberry Pi.Я хочу, чтобы пользователь мог щелкнуть кнопку на html-экране, который вызывает процедуру на Go, которая возвращает 2 значения, логическое значение и строку.
Что мы хотим сделать, это увидеть, какиесетевые интерфейсы на Rasberry Pi, например, соединение по локальной сети работает?
Чтобы сделать это, мне действительно нужно пропинговать сайт с каждого интерфейса.Это займет несколько секунд для каждого из 3 интерфейсов: Lan, WiFi и 3G.
Я могу сделать это, когда запрашивается страница, и заполнять HTML-шаблон при загрузке страницы, но это означает ожидание, может быть, 10до 15 секунд для загрузки страницы, поэтому кажется, что что-то сломано.
Итак, я хочу иметь возможность перечислить каждый из 3-х интерфейсов на странице и дать пользователю нажать «тест», который затем вызываетподпрограмма в базовом веб-сервере Go.
Затем я должен иметь возможность отображать результаты вызова в паре текстовых областей для каждого интерфейса.
Что я пробовал:
Я пытался зарегистрироватьсяфункция Go (в данном случае IsLANConnectionUp), использующая funcmap из пакета net / html и вызывающая его из шаблона html из функции JavaScript, например:
<button onclick = "getLANStatus()" class="btn btn-primary">Test</button>
<script>
function getLANStatus() {
var status = document.getElementById('status');
{{ if IsLANConnectionUp }}
status.innerHTML = "Lan is up!"
{{ else }}
status.innerHTML = "Lan is down!"
{{ end }}
}
</script>
Но наличие кода шаблона внутри кода javascript, похоже, не работает.Кроме того, я хотел бы, чтобы текст выводился из команды ping (которую моя функция Go getLANStatus и я не знаю, как извлечь эти данные из вызова функции. В документации сказано, что может быть возвращено только одно значение.
Поиск в StackOverflow Я вижу это: вызов функций Голанга из кода JavaScript
$.ajax({
url: "http://www.example.com/signup",
data: {username: "whatever"} //If the request needs any data
}).done(function (data) {
// Do whatever with returned data
});
Но там говорится что-то вроде "// Делай что-нибудь с возвращенными данными" Я новичок в веб-программировании и поэтому не знаю, как использовать этот код.Если это путь, кто-то может рассказать об этом немного?
Любая помощь будет высоко ценится.