缺点:Ajax轮询需要服务器有很快的处理速度与快速响应。long poll需要很高的并发,体现在同时容纳请求的能力。

一、轮询是在浏览器客户端实现的:

如果从后端获取数据成功则停止请求。

$(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);

}

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响应处理函数会在处理完服务器返回的信息后,再次发出请求,客户端再次建立连接,周而复始

$(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();

}

});

}

});

服务端的实现:

//获取数据TODO:

//验证数据TODO:

switch ($operate) {

case 'XXX':

//长连接是实现

# 设置最大的执行时间

ini_set('max_execution_time', '0');// 服务器一直执行

while (true) {

$status =获取数据

if ($status) {

break;

}

}

return json_encode($result);

break:

}

spring ajax 长轮询,Ajax轮询和长轮询相关推荐

  1. HTTP长链接和ajax轮询以及websocket原理理解

    HTTP的生命周期通过 Request 来界定,也就是一个 Request 一个 Response ,那么在 HTTP1.0 中,这次HTTP请求就结束了. 在HTTP1.1中进行了改进,使得有一个k ...

  2. java ajax轮询_ajax轮询(ajax轮询实现聊天)

    最近一直在研究ajax长轮询连实现即时通信,但是到底是个怎么轮询法?难道. 一般最原始的作法就是在客户端搞个定时器一直向后台请求,而ajax的长轮询与一般的http连接不一样,它发送的是长连接,比如说 ...

  3. 基于PHP实现一个简单的在线聊天功能(轮询ajax )

    基于PHP实现一个简单的在线聊天功能(轮询ajax ) 一.总结 1.用的轮询ajax 二.基于PHP实现一个简单的在线聊天功能 一直很想试着做一做这个有意思的功能,感觉复杂的不是数据交互和表结构,麻 ...

  4. 《深入浅出DPDK》读书笔记(八):网卡性能优化(异步中断模式、轮询模式、混和中断轮询模式)

    本文内容为读书笔记,摘自<深入浅出DPDK> 82.DPDK的轮询模式 <DPDK PMD( Poll Mode Driver)轮询模式驱动程序> DPDK采用了轮询或者轮询混 ...

  5. Spring MVC和JQuery用于Ajax表单验证

    在本教程中,我们将看到如何使用Ajax和Spring MVC和JQuery在服务器端验证表单. Spring MVC为通过注释驱动的配置采用Ajax提供了非常方便的过程. 我们将使用此注释驱动的配置以 ...

  6. Spring MVC Controller与jquery ajax请求处理json

    在用 spring mvc 写应用的时候发现jquery传递的[json数组对象]参数后台接收不到,多订单的处理,ajax请求: var cmd = {orders:[{"storeId&q ...

  7. 鸿蒙策略是虚拟盘吗,算上模拟炒股,碰股票已经快三年了,以前在模拟盘,一个月一两次操作,长的时候两个月等一轮,股票买进来,硬是等一个涨再抛出去... - 雪球...

    来源:雪球App,作者: 李无伤,(https://xueqiu.com/1943866017/177699610) 算上模拟炒股,碰股票已经快三年了,以前在模拟盘,一个月一两次操作,长的时候两个月等 ...

  8. 火狐 谷歌ajax 失效,如何解决ajax在google chrome浏览器上失效.pdf

    如如何何解解决决ajax在在google chrome浏浏览览器器上上失失效效 今天闲着没事做个一个ajax小练习,困扰了我很长时间,我写的ajax代码在ie.360.火狐浏览器上运行都是正常 的,而 ...

  9. c mvc ajax请求,springMVC的ajax请求

    关于spring MVC 的ajax请求 今天在使用spring MVC 的时候遇到了一个ajax请求的问题. 我的后台方法是 @RequestMapping("/XXXX/{XXX}&qu ...

最新文章

  1. 如何自行绕制所需要的2.2uH的电感?
  2. Swoole找不到telnet命令
  3. GRPC在网页前端的使用
  4. Java 11:String类中的新方法
  5. Go实现简单TCP扫描器
  6. Docker从入门到精通 项目实例示范
  7. Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用...
  8. java语言程序设计(梁勇)
  9. WIN10 SVN图标不显示问题
  10. 四川跃恒云启网络科技有限公司:拼多多推广花费高怎么调整
  11. 苹果Mac电脑怎么能彻底的卸载软件?
  12. CocosCreator中游戏摇杆的实现
  13. 读《深陷平庸的SaaS如何自救?》有感
  14. Linux下gmtime、gmtime_r、localtime、localtime_r函数详解
  15. 2012年CCS云计算高峰论坛
  16. BUUCTF:[SWPU2019]你有没有好好看网课?
  17. 吴恩达机器学习(第2周--Computing Parameters Analytically)
  18. PHP 获取微视无水印源地址_最新PHP解析抖音获取无水印视频代码
  19. H3C服务器出厂系统密码,h3c服务器网关口默认密码
  20. php qq头像程序,PHP教程:php获取QQ头像并显示的方法

热门文章

  1. SCCM 2016 使用PXE 部署操作系统(五)
  2. linux上杀死进程命令:kill、pkill、killall杀死进程
  3. Linux中怎样强制杀死进程
  4. 用Visual Studio Code配合Linux子系统进行C/C++开发(调试篇)
  5. usb_由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件......
  6. 企鹅电竞停步,虎牙也难行
  7. Oracle 序列详解(sequence)
  8. oracle 序列缓存的作用,Oracle序列sequence 深入理解
  9. 在web前端的路上,新手就业形势严峻,如何绝地求生?
  10. 减可变规模算法—中值和选择问题