短轮询(传统轮询)
客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
优点:
- 简单
缺点:
- 请求中有大半是无用,浪费带宽和服务器资源
适用场景:
- 适于小型应用。
function getting() {
$.ajax({
type : 'get',
url : 'http://127.0.0.1:8000/get',
success : function(res) {
console.log(res);
},
error : function(res) {
console.log(res);
}
})
}
//设置定时发送请求
setInterval(getting,2000);
长轮询
浏览器发送一个请求到服务器,服务器一直保持连接打开,直到有数据可以发送。发送完数据之后,浏览器关闭连接,随即再发送一个请求到服务器,以此循环下去。
优点:
- 在无响应的情况下不会频繁的请求
缺点:
- 服务器保持连接会消耗资源
适用场景:
- WebQQ、Hi网页版、Facebook IM
var getting = function() {
$.ajax({
type : 'get',
url : 'http://127.0.0.1:8000/lget',
success : function(res) {
console.log(res);
//收到响应后再次调用
getting();
},
error : function(res) {
console.log(res);
//收到响应后再次调用
getting();
}
})
}
getting();