Monday, May 13, 2024
 Popular · Latest · Hot · Upcoming
47
rated 0 times [  48] [ 1]  / answers: 1 / hits: 28373  / 14 Years ago, fri, august 27, 2010, 12:00:00

What are some good practices for polling a server with JavaScript for
an application that needs to refresh data very rapidly? I'm using jQuery for front-end and Java Spring Framework for backend.


Example of refreshed data could be list of items that are getting updated very rapidly (every 1 second).


More From » jquery

 Answers
19

You may want to use jQuery's Ajax functions to poll the server every second or so. Then the server can respond with instructions to the browser in near real-time.



You can also consider long polling instead of the above, to reduce the latency without increasing the frequency of the polls.



Quoting Comet Daily: The Long-Polling Technique:




The long-polling Comet technique is a technique that optimizes traditional polling to reduce latency.



Traditional polling sends an XMLHttpRequest to the server in fixed intervals. For example, open a new XMLHttpRequest every 15 seconds, receive an immediate response, and close the connection.



Long-polling sends a request to the server, but a response is not returned to the client until one is available. As soon as the connection is closed, either due to a response being received by the client or if a request times out, a new connection is initiated. The result is a significant reduction in latency because the server usually has a connection established when it is ready to return information to return to the client.




In addition to the above, I also suggest that you check out the accepted answer to the following Stack Overflow post for a detailed description of the long polling technique:




[#95786] Wednesday, August 25, 2010, 14 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
jarettajb

Total Points: 678
Total Questions: 94
Total Answers: 90

Location: Guernsey
Member since Tue, Jul 6, 2021
3 Years ago
;