setTimeout expects a function reference as the first parameter, you have a function call that passes the result of the ready () call.
This causes an endless loop.
You need to go to "ready", not "ready ()"
setTimeout(ready, 3000);
And if you are trying to queue ajax requests that occur in a structured manner, you want to run setTimeout to succeed after the previous ajax call, and not immediately, otherwise you will get returned and updated ajax results. arbitrary intervals depending on how the server responds to each request.
$.ajax({
This is better than using the async: false parameter, which blocks the browser.
source share