День добрый. Имею такой код ajax для управления нагрузками на микроконтроллере.
На стороне сервера все просто получили значение выхода записали в порт, затем прочитали из порта отправили в Ajax подтвердили включение.
Засада в том что в браузере происходит следующие, нажали checkbox он становиться checked, туже AJAX меняет его на unchecked потом приходит состояние полученное с микроконтроллера и он опять переходит в checked. Происходит такое мигание перед включением.
Опрос Ajax 1сек.
Как сделать проверку в Ajax, что уже можно менять данные, чтобы это не происходило по воле божией...
Сама статья
https://startingelectronics.org/arti...n-LED-control/
код.....
<script>
strLED1 = "";
function GetArduinoIO()
{
nocache = "&nocache=" + Math.random() * 1000000;
var request = new XMLHttpRequest();
request.onreadystatechange = function()
{
if (this.readyState == 4) {
if (this.status == 200) {
if (this.responseXML != null) {
var count;
if (this.responseXML.getElementsByTagName('LED')
[0].childNodes[0].nodeValue === "checked") {
document.LED_form.LED1.checked = true;
}
else {
document.LED_form.LED1.checked = false;
}
}
}
}
}
request.open("GET", "ajax_inputs" + strLED1 + nocache, true);
request.send(null);
setTimeout('GetArduinoIO()', 1000);
strLED1 = "";
}
function GetCheck()
{
if (LED_form.LED1.checked) {
strLED1 = "&LED1=1";
}
else {
strLED1 = "&LED1=0";
}
}
тут checkbox в html
<input type="checkbox" name="LED1" value="0" onclick="GetCheck()" />LED 1 (D6)<br /><br />