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


相关推荐

  • LR模型推导_索洛模型的简单推导

    LR模型推导_索洛模型的简单推导概念 逻辑回归假设数据服从伯努利分布,通过极大化似然函数方法,运用梯度下降来求解参数,来达到将数据二分目的 sigmoid函数 sigmoid函数:,y为正样本的概率,1-y为负样本的概率 LR模型推导 设 另 那么对应 极大似然估计 似然函数 对数似然函数就是 将代入公式 对参数求偏导 参数更新 …

    2022年10月13日
    1
  • charles导致mac无法上网_charles抓不到请求

    charles导致mac无法上网_charles抓不到请求前言charles关闭后,发现网页突然打开了,那大概率是设置了代理,但明明已经关闭了charles,这是由于mac网络偏好设置中,使用的是手动代理,将其改为自动即可解决方法1打开网络偏好设置,

    2022年7月29日
    2
  • word2vec原理概述

    word2vec原理概述最近阅读了Mikolov两篇关于word2vec的论文,结合Goldberg对这两篇论文的解读,作如下概述。概述在较早的论文“EfficientEstimationofWordRepresentationsinVectorSpace”中,Mikolov讨论了FeedforwardNeuralNetLanguageModel(NNLM)、RecurrentNeural

    2022年5月17日
    31
  • int32_t是什么数据类型_int32_t什么意思

    int32_t是什么数据类型_int32_t什么意思个人理解*_t中的t可以理解为typedefine。由于各个平台中对基本数据的大小定义不一样,为了兼容各个平台,C语言利用预编译和typedef可以让你最有效的维护你的代码。其实这些都不是新的数据类型,为了用户的方便,C99标准的C语言硬件为我们定义了这些类型,我们放心使用。如:int32_t其实就是32位int类型数据。附:C99标准中inttypes.h的内容000010001700…

    2022年9月20日
    0
  • arping 报错「建议收藏」

    arping 报错「建议收藏」linux下面arping的使用

    2022年6月10日
    32
  • 电商网站测试总结_跨境电商课程总结心得

    电商网站测试总结_跨境电商课程总结心得此文章转载来自http://www.51testing.com/html/21/n-863621.html,感谢分享!!总体按照两种模式进行划分总结:1.按照测试类型  2.按照电子商务网站的系统架构  1.按照测试类型来划分  1.兼容性  1.1主要是在浏览器兼容(360浏览器IE6IE8浏览器)  12.操作系统,主要体现在操作系统兼容(xpwin2003win2007)  2.U…

    2022年10月1日
    1

发表回复

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

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