spring ajax 长轮询,Ajax轮询和长轮询

spring ajax 长轮询,Ajax轮询和长轮询缺点:Ajax轮询需要服务器有很快的处理速度与快速响应。longpoll需要很高的并发,体现在同时容纳请求的能力。一、轮询是在浏览器客户端实现的:如果从后端获取数据成功则停止请求。$(function(){varcode,status;functiongetResult(){varparams={code:code,operate:’什么操作TODO:’,};$.ajax({typ…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

缺点: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:

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182105.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月14日 下午12:46
下一篇 2022年10月14日 下午12:46


相关推荐

  • 有关R6034错误的思考

    有关R6034错误的思考作者 朱金灿来源 http blog csdn net clever101 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 我们有时会遇到 R6034 错误 工程明明编译通过 但是运行时却出现 nbsp nbsp nbsp nbsp nbsp nbsp nbsp 网上的解决办法很多 但是有效的不多 特别是对阐述这个问题的本质的很少 今天就这个问题谈谈我的粗浅看法 不当及不全面地请大神们赐教 大家知道 操作系统是处在硬件和应用程序之间的一个中间层 应用程序运行时需要用到的库

    2026年3月20日
    1
  • 如何卸载手机系统自带应用(无需root)?【亲测有用】

    如何卸载手机系统自带应用(无需root)?【亲测有用】如何卸载手机系统自带应用

    2026年3月18日
    2
  • JavaScript中prototype用法

    JavaScript中prototype用法1概述大部分面向对象的编程语言,都是以类class作为对象的基础语法,js语言不是如此,它的面向对象编程基于‘原型对象’。首先说说构造函数的缺点:js通过构造函数生成新的对象,因此构造函数可以视为独享的模版。实例对象的属性和方法,可以定义在构造函数内部概述构造函数的缺点JavaScript通过构造函数生成新对象,因此构造函数可以视为对象的模板。实例对象的属性和方法,可以定

    2022年7月22日
    15
  • 项目管理中的配置管理

    项目管理中的配置管理配置管理的目标 为了系统地控制配置变更 在系统的整个生命周期中维持配置的完整性和可跟踪性 标识系统在不同时间点上的配置 配置管理的主要活动 制定配置管理计划 配置标识 配置控制 配置状态报告 配置审计 发布管理和交付 配置审计的功能 1 防止向用户提交不合格的产品 2 发现不完善的实现 3 找出各配置项不匹配或者不相容的现象 4 确认配置项已在所要求的质量控制后纳入基线并入库

    2026年3月16日
    2
  • Vue学习之跑马灯效果

    Vue学习之跑马灯效果Vue学习之跑马灯效果

    2022年4月23日
    42
  • 常量和常量表达式_里伯德常量

    常量和常量表达式_里伯德常量常量和常量表达式 long型常量以L或者l结尾,有时候,如果一个整数太大无法用int表达,也被当做long型; 无符号常量以U或者u结尾,unsignedlong型常量以UL或者ul结尾; 没有后缀的浮点数常量为double型; 有后缀F或者f的浮点数常量是float型,后缀L或者l表示longdouble型常量; 八进制和十六进制的常量也可以使用L和U后缀;

    2026年4月18日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号