I’m trying to make auto-reload counter (for ex.: Messages [num]).
So, I just in setTimeout(); getting JSON code from test_ajax.php. I think it’s not correctly..
Can I send info by server (I think not, but suddenly I something don’t know..)?
Why I think that’s not correctly: because when I’m looking in my chrome network log (F12 -> network tab), I see a lot of requests (to test_ajax.php), but when, I’m visiting vk.com (great example for ajax) or facebook.com, I don’t see any requests while something will not change.
So, what’s incorrectly in my solution (or what’s bad..)?
UPD: Sorry, vk.com sending requests to q%NUM%.queue.vk.com every 25s, but until 25s last request’s status is “Pending”. When someone, for example, sending me a message it immediately display it. And request has parameter “wait” which equals 25. This delay in requests doing on server side.. But how?
What you are looking for is called COMET (also sometimes called Reverse AJAX) techniques.
Doing what you want to do, e.g. regular polls, is one way of doing it.
A lot is actually happening on the server side; to avoid recreating new connections on every poll, some servlet containers like Jetty started to implement techniques like Continuation which basically maintain a two-way connection open.
In the Java world, with Servlet 3, you have asynchronous calls as part of the specs.