1
私は次のようなシナリオを持っています:Elm lang 0.17でデバック自動保存を実装する方法は?
ユーザーがテキスト領域での入力をやめると2秒待ってから2秒以内にテキスト領域の内容を変更しない場合は保存しますサーバーへのテキストエリアの内容ユーザーが2秒以内にテキストエリア内の何かを変更した場合は、待機タイムアウトを再開します。 JavaScriptで
動作を実現するために、この
http://codepen.io/ondrejsevcik/pen/LRxWQP
// Html
<textarea id="textarea"></textarea>
<pre id="server"></pre>
// JavaScript
var textarea = document.querySelector('#textarea');
var textValue = "";
textarea.oninput = function (e) {
textValue = e.target.value;
setSaveTimeout();
}
let saveTimeout;
function setSaveTimeout() {
if (saveTimeout) {
clearTimeout(saveTimeout);
}
saveTimeout = setTimeout(saveToServer, 2000);
}
function saveToServer() {
document.querySelector('#server').innerText =
'Value saved to server: ' + textValue;
}
[ 'Process.sleep'(http://package.elm-lang.org/packages/elm-lang/core/4.0.5/Process#sleep)はエルムで' setTimeout'同等です明らかに。私はデバウンスのためにそれを使用することの[この例](https://github.com/fredcy/example-elm-debounce/blob/master/Debounce.elm)を見つけることができましたが、それが最良の方法であるかどうかわからない。 –
また、デバッグする方法について議論しているユーザーグループのスレッドもあります:https://groups.google.com/forum/#!topic/elm-discuss/w4MwjIaTiIY –