I am using working on web app which had a DIV in which latest update about a topic is shown which is coming from some other website. So what i want is to update the DIV as soon as the data is really updated in back end database.
On the back-end I am using cron to fetch & store data in database.
A simple way of doing this is to use
function and keep on fetching the data at a particular time interval but I think this would just cause unnecessary load on the server and just waste CPU cycles.
So what's the best way to implement this? can/should i use nodeJs for this?
P.S. I just want something like facebook uses to upddate it's news feed in the middle of page.
and i have no experience with nodeJs yet so honestly i don't even know that nodeJs is good for this or not.
Problem courtesy of: Peeyush
How do I implement basic "Long Polling"?
In modern browsers, you could also use web sockets where you client opens up a socket directly to the server and the server just sends you new data when there is new data.
In either case, you need a back-end server that can handle lots of simultaneous, but mostly idle connections.
Solution courtesy of: jfriend00
, it will solve your problem easily by pushing to the client using websockets, and fallback gracefully to flash sockets. You do not have to port all your code to node.js
, instead, use it alongside with your original code. Also note that if the interval is originally something like 5 minutes, you'd be better off using setInterval ajax. Websockets is best for (near) realtime communication (with a small latency within seconds, eg. chat).
Discussion courtesy of: TiansHUo
Node can definitely be useful for this, but it is not necessary as jfriend00 says. Take a look at socket.io
for an example of "push" notifications from your server to the browser. Since you don't have any experience with node.js
, it would depend on the application as to whether I would recommend it as the solution or not. If this is just a hobby project for educational purposes I would say go ahead, tinker away. If this is for a production system and you're not already using node.js
in other capacities, I say stick with something simple like the setInterval method you mentioned in your question.
Discussion courtesy of: Timothy Strimple
This recipe can be found in it's original form on Stack Over Flow