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


相关推荐

  • Windows不能在本地计算机启动MongoDB,错误代码 100

    Windows不能在本地计算机启动MongoDB,错误代码 100

    2021年5月26日
    96
  • sql server 连接查询_连表查询语句

    sql server 连接查询_连表查询语句SQL的连表查询2017年08月31日15:58:49阅读数:176SQL的连表查询连接查询包括合并、内连接、外连接和交叉连接,如果涉及多表查询,了解这些连接的特点很重要。只有真正了解它们之间的区别,才能正确使用。1、UnionUNION操作符用于合并两个或多个SELECT语句的结果集。UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派…

    2022年9月14日
    3
  • IDEA注释详解_idea自定义注释模板

    IDEA注释详解_idea自定义注释模板目录目录生成类注释生成类注解模板生成方法注释生成方法注解模板最近从eclipse转idea了,第一步当然是配置快捷键,模板等。但是!发生了一件贼蛋疼的事情,竟然一直找不到正确添加方法注释的方法!最后自己摸索到了,在此详细记录,供大家参考。测试版本为ideaformac,可能快捷键不同,但是设置等肯定是相同的12生成类注释打开PreferencesEditor->Fileand…

    2022年9月30日
    3
  • Kong网关初探_API网关

    Kong网关初探_API网关安装Kong安装文档Kong开源版不提供dashboard支持,只有Kong企业版才有该功能。但有第三方控制台Konga同样可以友好地管理KongAdminAPI对象,快速安装如下:dockerrun-d-p1337:1337\–namekonga\–network=kong-net\-eDB_ADAPTER=postgres\-eDB_HOST=kong-database\-eDB_PORT=5432\-eDB_USER=kong\

    2025年10月21日
    2
  • PHP 函数之 call_user_func & call_user_func_array[通俗易懂]

    PHP 函数之 call_user_func & call_user_func_array

    2022年2月5日
    46
  • Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」

    Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」如果你将项目中的appcompat库升级到1.3.0或更高的版本,你会发现startActivityForResult()方法已经被废弃了。这个方法相信所有做过Android的开发者都用过,它主要是用于在两个Activity之间交换数据的。那么为什么这个如此常用的方法会被废弃呢?官方给出的说法是,现在更加建议使用ActivityResultAPI来实现在两个Activity之间交换数据的功能。我个人的观点是,startActivityForResult()方法并没有什么致命的问题,只是

    2022年7月11日
    18

发表回复

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

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