How to push new HTML data from the server to the b

2019-02-10 06:27发布

I have seen many websites (facebook or stack overflow for instance) that will update certain features as new data is generated (new answer on a post for example).

Lets say that there is a new post added to a blog and someone is in the blog in that moment looking at it, the idea is to automatically add the new post to the blog without refreshing or having the user to do any action.

I have thought of executing an AJAX call every 5 seconds or so, but that will make too many requests to the server, and I saw that the websites I mentioned (which renew content) don't make any new requests.

I am really out of ideas of how to achieve this. Is this possible with PHP and AJAX? I've heard of websockets too. Any ideas? Thanks

4条回答
戒情不戒烟
2楼-- · 2019-02-10 06:28

You can use HTML5 SSE. But that's not a very good solution.

You can use Comet server that helps in Long AJAX polling. Check out the Ajax Push Engine (APE). It's a combination of Comet Server and a Javascript framework to make AJAX-PUSH or real time streaming possible.

cheers! :)

查看更多
家丑人穷心不美
3楼-- · 2019-02-10 06:37

Great question! There's a few solutions.

There's been a relatively new solution to this call websockets. It's in the HTML5 standard and there's a lot of libraries for it on other languages too.

One of them is sockets.io ( javascript ) - it enables you to keep a consistent, low-latency connection with a server to receive information as it's generated. There's also plenty of plugins for php, c, and python for the server side.

To name a few: libwebsockets ( c++ ), pywebsockets ( python ), and jetty ( javascript )

And for php: http://socketo.me/

Visit this link for more info: http://www.html5rocks.com/en/tutorials/websockets/basics/

查看更多
相关推荐>>
4楼-- · 2019-02-10 06:44

Well,

If you are in the PHP and Open Source world, you can consider Node.Js, Socket.IO or NowJs

I am in the ASP.Net wonderworld and I love SignalR.

查看更多
在下西门庆
5楼-- · 2019-02-10 06:45

One example of a framework that can help you do this is SignalR http://signalr.net/

This is asp.net specific though

查看更多
登录 后发表回答