Ajax轮询请求

什么是轮询?

  轮询(polling):客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

  Ajax轮询需要服务器有很快的处理速度与快速响应。

Ajax轮询实现

Ajax轮询原理

客户端是按照规定时间(这个时间由你设定,此处默认为1秒)像服务端发送请求,前一次请求完成后,无论有无结果返回,一秒之后下一次请求又会发出。这就叫做Ajax轮询。

<script>
$(function(){
var code,status;
function getResult(){
var params = {
code: code,
operate: '什么操作TODO:',
};
$.ajax({
type: 'POST',
url: "请求地址TODO:",
data: params,
success: function(response) {
console.log('成功啦');
//对成功数据的操作TODO:
clearInterval(status);
},
dataType: 'json',
timeout: 30*1000,// 超时时间
// 超时意味着出错了
error: function (error) {
console.log('失败啦');
} });
} });
//获取code。如果code存在则调用轮询来获取数据
if(code){
status = setInterval(getResult, 1000);
} </script>

setInterval()用法:

 function direct() {
console.info( "time: ", ( new Date() ).getTime() );
}
function showlog() {
setInterval(direct(), 1000);
}
function showlog_2() {
setInterval( direct, 1000 );
}
function showlog_3() {
setInterval( function () {
direct();
}, 1000 );
}
function showlog_4() {
setInterval( "direct()", 1000 );
}
// showlog(); //=> 执行一次
// showlog_2(); //=> 每隔 1000毫秒 执行一次
// showlog_3(); //=> 每隔 1000毫秒 执行一次
// showlog_4(); //=> 每隔 1000毫秒 执行一次

长轮询

  ajax实现:在发送ajax后,服务器端会阻塞请求直到有数据传递或超时才返回。 客户端JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,客户端再次建立连接,周而复始

<script>
$(function() {
//定义code
var code;
//获取code TODO:
getStatusLong();
// 长轮询执行
function getStatusLong()
{
var data = {
operate: '操作TODO:',
code: code,
};
$.ajax({
type: 'post',
url: url,
data: data,
success: function(response) {
if (response.error == 0) {
//成功的操作
}
},
dataType: 'json',
timeout: 10*1000,// 超时时间
// 超时意味着出错了
error: function (error) {
console.log(error);// timeout
// 立即发出请求
getOrderStatusLong();
} }); }
});
</script>

最新文章

  1. hdu4982 Goffi and Squary Partition (DFS解法)
  2. NDK开发之引用(局部引用,全局引用,虚全局引用)
  3. matlab里.*和*的区别
  4. POJ3264Balanced Lineup 线段树练手
  5. cocos2d-x——在一个cpp中展示多个场景
  6. Android强制设置横屏或竖屏
  7. Java开发工具IntelliJ IDEA使用教程:创建新的Andriod项目
  8. Java历程-初学篇 Day02变量,数据类型和运算符
  9. (干货)微信小程序之转发好友
  10. HashMap底层实现原理
  11. 将webcam设置为网站favicon
  12. 软件工程(FZU2015) 增补作业
  13. SoapUI、Jmeter、Postman三种接口测试工具的比较分析
  14. 用GraphX分析伴生网络(二)
  15. IntelliJ IDEA工具的安装使用
  16. Android Data Recovery for Mac(安卓数据恢复软件)破解版安装
  17. [代码优化]PHP代码优化
  18. 记一次Java加密加签算法到php的坑
  19. serializeArray()与 serialize()
  20. shell 下执行mysql 命令

热门文章

  1. MVC 小demo
  2. java 方法的重载重写
  3. leetcode 289生命游戏
  4. 搭建SVN服务器时报错:0x80004002
  5. 自定义view防支付成功页面
  6. Ubuntu 16.04下安装sublime Text的插件
  7. Go语言引用类型
  8. C# 实现播放RTSP 标准协议码流播放
  9. Android 动态申请权限
  10. Sqlserver实现故障转移 — 域控(1)