之前去某公司面试,需要解决一个在线聊天室的消息实时性问题,且需要兼容低版本浏览器。
高版本浏览器自然不成问题,那么低版本的浏览器如何处理。
最先想到的方案,自然是轮询发ajax请求。在一定的程度上,这个方案可以解决实时性的问题。
但是随之带来的问题是,不停的向服务器发请求带来的服务器的压力,且多数时间都是无用请求。
后实在没有方案,向面试官请教之,得出一个方案: 长轮询。
服务器与客服端需保持一条长时间的请求,将请求Hold住,只在有数据或者超时情况下返回消息给客户端。
JavaScript代码:
$(function(){
$("#btn").on("click",,function(event){
$.ajax({
type:"POST",
dataType:"json"