Repeat code every 4 seconds

Use setInterval function

setInterval( fn , miliseconds )

From MDC docs:

Summary

Calls a function repeatedly, with a fixed time delay between each call to that function.

Syntax

var intervalID = window.setInterval(func, delay[, param1, param2, ...]);
var intervalID = window.setInterval(code, delay);

where

intervalID is a unique interval ID you can pass to clearInterval().

func is the function you want to be called repeatedly.

code in the alternate syntax, is a string of code you want to be executed repeatedly. (Using this syntax is not recommended for the same reasons as using eval())

delay is the number of milliseconds (thousandths of a second) that the setInterval() function should wait before each call to func. As with setTimeout, there is a minimum delay enforced.

Note that passing additional parameters to the function in the first syntax does not work in Internet Explorer.

Example

// alerts "Hey" every second
setInterval(function() { alert("Hey"); }, 1000);

setInterval(function(){
  // your code...
}, 4000);

It's not too hard in javascript.

// declare your variable for the setInterval so that you can clear it later
var myInterval; 

// set your interval
myInterval = setInterval(whichFunction,4000);

whichFunction{
    // function code goes here
}

// this code clears your interval (myInterval)
window.clearInterval(myInterval); 

Hope this helps!


Another possibility is to use setTimeout, but place it along with your code in a function that gets called recursively in the callback to the $.get() request.

This will ensure that the requests are a minimum of 4 seconds apart since the next request will not begin until the previous response was received.

 // v--------place your code in a function
function get_request() {
    $.get("request2.php", function(vystup){
       if (vystup !== ""){
          $("#prompt").html(vystup)
                      .animate({"top": "+=25px"}, 500)
                      .delay(2000)
                      .animate({"top": "-=25px"}, 500)
                      .delay(500)
                      .html("");
        }
        setTimeout( get_request, 4000 ); // <-- when you ge a response, call it
                                         //        again after a 4 second delay
    });
}

get_request();  // <-- start it off