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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 六大算法之动态规划_leetcode迷宫最短路径

    六大算法之动态规划_leetcode迷宫最短路径在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足:nums1[i] == nums2[j]且绘制的直线不与任何其他连线(非水平线)相交。请注意,连线即使在端点也不能相交:每个数字只能属于一条连线。以这种方法绘制线条,并返回可以绘制的最大连线数。示例 1:输入:nums1 = [1,4,2], nums2 = [1,2,4]输出:2解释:可以画出两条不交叉的

    2022年8月9日
    5
  • 凸函数与凹函数的区别_convex中文

    凸函数与凹函数的区别_convex中文读文章和学习过程中经常会遇到concave,convex以及down,up的组合。怎样区分呢?下面有一些摘自网络的定义,不同情况下应有不同的定义,以下仅供参考:定义一:当四种都存在时:上凹(conve

    2022年8月5日
    9
  • 关于前端iframe嵌套页面的跳转问题

    关于前端iframe嵌套页面的跳转问题因工作中遇到的项目,有iframe页面嵌套,遇到了页面跳转的问题,所以记录解决问题的过程关于前端iframe嵌套页面的跳转问题问题:在A页面使用iframe嵌套了B页面,B页面中做了权限校验,即登录成功后才可以访问B中的某个页面,如果没有登录,则跳转A登录页面.过程:开始在B中尝试使用页面跳转location.href=”A登录的页面地址”,一直访问失败,且浏览器地址栏的url也没有变化,查询相关资料得到解决方法.解决方案:使用:windows.parent.location.href=”.

    2022年6月16日
    250
  • 基于遗传算法的BP神经网络优化算法

    基于遗传算法的BP神经网络优化算法遗传算法优化BP神经网络分为BP神经网络结构确定、遗传算法优化和BP神经网络预测3个部分。其中,BP神经网络结构确定部分根据拟合函数输入输出参数个数确定BP神经网络结构,这样就可以确定遗传算法的优化参数个数,进而确定遗传算法个体的编码长度。因为遗传算法优化的参数是BP神经网络的初始权值和阈值,只要网络的结构已知,权值和阈值的个数就已知了。种群中的每个个体都包含了一个网络所有权值和阈值,个体通过

    2022年7月20日
    14
  • MANIFEST.MF是个什么?

    MANIFEST.MF是个什么?MANIFEST.MF是个什么?写这篇文件主要记录JRA文件里面到底是什么?然后MANIFEST.MF又是什么?Springboot如何只有Main方法就可以运行的?Springboot项目打包

    2022年7月1日
    18
  • redissonredlock_redisson lock

    redissonredlock_redisson lock1.现在错误的用法:RLocklock=redisson.getLock(String.format(LOCK_KEY,2));try{if(lock.tryLock()){//处理logger.info(“aaaaaaaaaaaaaaaaaa”);}catch(Exceptione){//处理异常}finally{…

    2022年10月15日
    2

发表回复

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

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