function throttle(func, time) { clearTimeout(func._timeout); func._timeout=setTimeout(() => { func.call(); }, time); } function handle_date_change(e) { async function _handle_date_change() { var response = await fetch('/date?date=' + encodeURIComponent(e.target.value)); var response_json = await response.json(); format_strings = ''; for (entry in response_json) { format_strings += '<p>' + response_json[entry] + '</p>'; } document.querySelector('#format').innerHTML = format_strings; } throttle((e) => { _handle_date_change(e); }, 100); } var date_input = document.querySelector('#date'); date_input.addEventListener('focus', handle_date_change, false); date_input.addEventListener('change', handle_date_change, false); date_input.addEventListener('keydown', handle_date_change, false); date_input.focus();