Q:

Refresh. JavaScript

<script>
function fresh() {    
location.reload();    
}    
setInterval("fresh()",3000);    
</script>    

Как запретить исполнение этого кода, до тех пор пока пользователь набирает текст в textarea при этом код не должен выполняться еще 30 сек. после того, как пользователь закончит набирать текст?

A:

Я не совсем понимаю практичность описанного Вами поведения, но если очень хочется, то можно сделать так:
<div id="hint">Осталось 3 секунды!</div>
<form>
<textarea id="content" cols="30" rows="10"></textarea>
</form>

<script src="//code.jquery.com/jquery-2.1.4.js"></script>
<script>
  $(function () {
    var refresh = function () {
      location.reload();
    }
    var element = $("#content");
    var hint = $("#hint");

    var TIMEOUT = 3000; // == 3 sec
    var timer_id = setTimeout(refresh, TIMEOUT);

    element.keyup(function () {
      timer_id && clearTimeout(timer_id);
      timer_id = setTimeout(refresh, TIMEOUT);
    });

    element.blur(function () {
      hint.show();
    });

    element.focus(function () {
      hint.hide();
    });
  });
</script>

