例如,希望实现有新消息通知用户,目前想到的方法是,settimeout去不断发起ajax向后端请求数据
这种方案有什么弊端吗?
或者有什么更好的方案?可以由服务器push给浏览器?
例如,希望实现有新消息通知用户,目前想到的方法是,settimeout去不断发起ajax向后端请求数据
这种方案有什么弊端吗?
或者有什么更好的方案?可以由服务器push给浏览器?
10 回答11.1k 阅读
15 回答8.4k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
8 回答6.2k 阅读
2 回答2.7k 阅读✓ 已解决
之前也在处理这个问题,如果只要新消息通知的话,可以用 SSE(Server-sent Events)推送。
相比使用WebSocket要方便很多,在服务端无需太多操作,很简单的就能加上功能。WebSocket是双向的,SSE是单向的,对于推送消息足够了。
对于旧的ajax轮询方式,SSE协议省了很多不必要的冗余数据。
兼容性上,如果要顾及IE,得针对性处理一下。
可以看看这篇文章,底下也附带了很多相关资料 https://my.oschina.net/jb2011...