Я видел много похожих вопросов на мой, но потратил несколько часов на просмотр и не могу найти ответ на мою ситуацию.
У меня есть веб-сервер на основе Go. У меня есть страница шаблона HTML, которая позволяет мне обновлять аппаратные часы и системные часы в системе 'nix с текущим временем браузера:
Кнопка обновления имеет тип submit и вызывает код Go, который выполняет некоторые системные вызовы, которые занимают несколько секунд, и я не могу заставить этот код сервера вызываться дважды, пока он еще обрабатывает первый запрос.
Итак, я хочу отключить кнопку обновления, а затем снова включить ее после ответа сервера.
У меня есть jQuery, поэтому я знаю, что могу иметь функцию, которая вызывается с помощью onclick, и выполнять эти вызовы:
$("#updateButton").prop("disabled", true);
$("#updateButton").prop("disabled", false);
У меня есть форма, отправляемая через кнопку (а не, например, вызов jQuery - хотя у меня все уши), потому что я хочу, чтобы форма обновлялась, когда сервер отвечает. Итак, у меня есть это:
<form action="/clock" method="POST">
...
</form>
Это значит, что некоторые значения на странице обновляются. Например, сообщение о статусе вверху и значения в различных полях (обновленные до фактически установленных значений).
Первая проблема, с которой я столкнулся, заключается в том, что если я вызываю функцию JS при нажатии кнопки, и она отключает кнопку, как указано выше, то мой код сервера не вызывается! Я понятия не имею, почему - это могло как-то остановить запрос на публикацию?
<script>
function getTime() {
// Disable update button while waiting for response
$("#updateButton").prop("disabled", true); // Stops post request???
// How to re-enable update button?
}
</script>
А во-вторых, как мне снова включить кнопку? Я не знаю, как определить, когда сервер ответил.