Ajax轮询请求
Ajax轮询请求
什么是轮询?
轮询(polling):客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。
Ajax轮询需要服务器有很快的处理速度与快速响应。
Ajax轮询实现
Ajax轮询原理
客户端是按照规定时间(这个时间由你设定,此处默认为1秒)像服务端发送请求,前一次请求完成后,无论有无结果返回,一秒之后下一次请求又会发出。这就叫做Ajax轮询。
<script>
$(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);
} </script>
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响应处理函数会在处理完服务器返回的信息后,再次发出请求,客户端再次建立连接,周而复始
<script>
$(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();
} }); }
});
</script>
Ajax轮询请求的更多相关文章
- 【Javascript】解决Ajax轮询造成的线程阻塞问题(过渡方案)
一.背景 开发Web平台时,经常会需要定时向服务器轮询获取数据状态,并且通常不仅只开一个轮询,而是根据业务需要会产生数个轮询.这种情况下,性能低下的Ajax长轮询已经不能满足需求,频繁的访问还会造成线 ...
- 浅谈Websocket、Ajax轮询和长连接(long pull)
最近看到了一些介绍Websocket的文章,觉得挺有用,所以在这里将自己的对其三者的理解记录一下. 1.什么是Websocket Websocket是HTML5中提出的新的协议,注意,这里是协议,可以 ...
- Ajax轮询以及Comet模式—写在Servlet 3.0发布之前(转)
2008 年的夏天,偶然在网上闲逛的时候发现了 Comet 技术,人云亦云间,姑且认为它是由 Dojo 的 Alex Russell 在 2006 年提出.在阅读了大量的资料后,萌发出写篇 blog ...
- WebSocket原理及与http1.0/1.1 long poll和 ajax轮询的区别【转自知乎】
一.WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算)首先HTTP有1.1和1.0之说,也就是所谓的ke ...
- ajax轮询实时获取数据
最近做一个评论功能时,想要实现实时异步刷新评论功能,于是使用了ajax轮询,这里简单记录一下ajax轮询的原理及使用方法. ajax轮询的原理就是客户端定时向服务端发送ajax请求,服务器接到请求后马 ...
- ajax轮询与长轮询
刚刚网了关于轮询的知识,必须拿到自己这里来做个备份了! 其实以前用ajax轮询做个及时数据更新的,只是当时做了不知道那个就是轮询. 首先我们什么时候会想到用轮询技术呢? 一般而言,最多的是及时信息 ...
- 闲话ajax,例ajax轮询,ajax上传文件[开发篇]
引语:ajax这门技术早已见怪不怪了,我本人也只是就自己真实的经验去总结一些不足道的话.供不是特别了解的朋友参考参考! 本来早就想写一篇关于ajax的文章的,但是前段时间一直很忙,就搁置了,趁着元旦放 ...
- WebSocket和long poll、ajax轮询的区别,ws协议测试
WebSocket和long poll.ajax轮询的区别,ws协议测试 WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连 ...
- Ajax轮询——“定时的通过Ajax查询服务端”
Ajax轮询——"定时的通过Ajax查询服务端". 概念: 轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. 百闻 ...
随机推荐
- 黑马lavarel教程---7、文件上传
黑马lavarel教程---7.文件上传 一.总结 一句话总结: 在laravel里面实现文件的上传是很简单的,压根不用引入第三方的类库,作者把上传作为一个简单的http请求看待的. 1.在lavar ...
- js style.display = "" 和style.display="none" 区别
style.display = "":是清除display样式,display将使用默认值(块元素会变成block,内联元素会变成inline)style.display=&quo ...
- leetcode-easy-math-204 Count Primes-NO
mycode time limited class Solution(object): def countPrimes(self, n): """ :type n ...
- 【BZOJ 3709: [PA2014]Bohater】
首先,这是我n久之前培训的时候老师讲的题目了,今天突然看到,那就讲讲吧. 首先,我们考虑怎么打怪... 显然,我们需要保证这个怪要尽可能的打死(就是尽量不被干死),并且保证尽可能的净获得血量大的在前面 ...
- Array 操作
一.数组拉平 function arrayFlat(arr) { return arr.reduce((pre, cur) => { const temp = Array.isArray(cur ...
- org-mode 写 cnblogs 博客
1. 为什么用org-mode写博客 我最开始用Emacs, 是因为org-mode.这是一个专注于写,而让我忽略展示结果的一种写作方式.为 什么这么说?因为所有内容的格式都是可定制的.按照自己喜欢的 ...
- android中builder模式的使用
变种的Builder模式的自动化生产实现: AS安装插件 Innerbuilde 新建User类 public class User { private final String name; //必 ...
- opengl入门篇一: 第一个三角形
话说程序员有三大浪漫,操作系统.编译原理和计算机图形学.这里称作计算机图形学,而不是图形学,是为了避免歧义. opengl是干什么的,可以自行google.这里仅作为一个学习里程中的记录.不作为权威指 ...
- eigenvalues problem
由于在看paper中经常会看到generalized eigenvalues.eigenvalues problem等字眼,今晚终于开始认真地重新看了一下线性代数中这部分内容.下面是在学习过程中找出来 ...
- SSM的开发步骤分析
完整开发步骤 导包 spring的jar包 mybatis的jar包 mybatis-Spring的jar包 aop的依赖jar包 oracle等数据库连接的jar包 DataSource的jar包 ...