Siempre tengo un malentendido con javascript y cómo funciona la llamada a una función.
Tengo una entrada de rango y envío el valor a través de API, el problema que tengo es que:
Al deslizar el rango, envío muchas solicitudes, por lo que me gustaría esperar el final de la entrada del usuario o deslizar en mi caso y luego enviar la solicitud.
¿Qué sucede si llamo mucho tiempo a una función en js? ¿En cualquier momento se reiniciará la función o se iniciará una nueva instancia de esa función?
Porque en el estado actual de la técnica, si coloco el rango al final, generará de 5 a 10 solicitudes con el mismo valor.
Este es el código html:
<input type="range" min="0" max="1023" value="0" class="py-2" id="swtchvalue0" oninput="setSWstate(0)">Esta es la función:
function setSWstate(sw){ const value = document.getElementById(valuePrefix + sw).value; let http = new XMLHttpRequest(); let params = 'sw=' + sw +'&value=' + value; const errdiv = document.getElementById(errorPrefix + sw); // setting value, if not ok will overwrited after from getswitchstate and hide error div document.getElementById(valuePrefix + sw).value = value; errdiv.classList.add("hidden"); http.open('POST', "/setsw?"+ params, true); //Send the proper header information along with the request http.setRequestHeader('Content-type', 'application/json'); http.onreadystatechange = function() {//Call a function when the state changes. if(http.readyState == 4 && http.status == 200) { if(http.responseText === "ok"){ } else { document.getElementById(errorPrefix + sw).innerHTML = http.responseText; errdiv.classList.remove("hidden"); } } } http.send(params); }¿Cómo puedo esperar algo así como 300 ms para filtrar el final del deslizamiento?