mysql长轮询_ajax的轮询和长轮询

mysql长轮询_ajax的轮询和长轮询概念:轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。概念总是枯燥的,只有代码方能解心头之快前段代码:index.html:vargetting={url:’server.php’,dataType:’json’,success:function(res){console.log(res);}};//关键在这里,Ajax定时…

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

Jetbrains全系列IDE稳定放心使用

概念:

轮询(polling):客户端按规定时间定时像服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接。

概念总是枯燥的,只有代码方能解心头之快

前段代码:index.html:

var getting = {

url:’server.php’,

dataType:’json’,

success:function(res) {

console.log(res);

}

};

//关键在这里,Ajax定时访问服务端,不断获取数据 ,这里是1秒请求一次。

window.setInterval(function(){$.ajax(getting)},1000);

服务端PHP代码:server.php

$conn = mysqli_connect(“localhost”,”root”,””,”test”);

$resource = $conn ->query(‘select * from t’);

$result = $resource->fetchall();

if ($result) {

//exits data

print_r(json_encode(array(‘success’=>’存在数据’)));

}

print_r(json_encode(array(‘failed’=>’不存在数据’)));

$conn.close

?>

上面就是最基本最简化的Ajax轮询。判断t表是否有数据,并执行对应输出。 实际项目中的话查询语句就根据实际需求来定就可以了。

从代码我们可以看出,客户端是按照规定时间(这个时间由你设定,此处默认为1秒)像服务端发送请求,前一次请求完成后,无论有无结果返回,一秒之后下一次请求又会发出。这就叫做Ajax轮询。

最关键的地方在于,客户端需要通过JS设定一个定时器,按照规定时间不断的请求。

好,轮询完了,我们来看一下长轮询

Ajax长轮询属于Ajax轮询的升级版,在客户端和服务端都进行了一些改造,使得消耗更低,速度更快。

“不间断的通过Ajax查询服务端”。

同样看代码说话:

前端代码:

//前端Ajax持续调用服务端,称为Ajax轮询技术

var getting = {

url:’server.php’,

dataType:’json’,

success:function(res) {

console.log(res);

$.ajax(getting); //关键在这里,回调函数内再次请求Ajax

}

//当请求时间过长(默认为60秒),就再次调用ajax长轮询

error:function(res){

$.ajax($getting);

}

};

$.ajax(getting);

服务端代码:

//这段AJAX请求时间永不过期

set_time_limit(0);

$pdo = new PDO(‘mysql:dbname=test;host=127.0.0.1′,’root’,’root’);

$resource = $pdo->query(‘select * from t1’);

$result = $resource->fetchall();

while (true) {

if ($result) {

//exits data

print_r(json_encode(array(‘success’=>’存在数据,返回’)));

exit(); //输出数据,退出。然后客户端不间断继续发起请求

}

//数据不存在,继续循环。

}

?>

长轮询的精髓就在于Ajax的回调函数,继续再次调用Ajax请求(不间断的原理就在这里,成功返回后立即再次调用):

$.ajax(getting);

类似于js里面的递归,在函数里面调用函数;

最关键的地方在于前一次请求结束后,第二次请求立即不间断的发起,这个就叫做Ajax长轮询

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 数据库系统原理课程设计报告 图书借阅管理系统[通俗易懂]

    数据库系统原理课程设计报告图书借阅管理系统第1章设计背景与需求分析1.1设计背景1.1.1图书管理的现状图书馆作为一种资源的集散地,图书和用户在借阅资料繁多,包含很多的信息管理,现在有很多的图书馆都是初步的开始使用,甚至尚未使用计算机进行资源管理,没有建立相对应的图书管理数据系统,而是使用人工计算,抄写进行,数据处理工作量大,容易出错和数据丢失。…

    2022年4月18日
    45
  • java voliate_Java之voliate, synchronized, AtomicInteger使用

    java voliate_Java之voliate, synchronized, AtomicInteger使用1:voliate用在多线程,同步变量。线程为了提高效率,将成员变量(如A)某拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm,它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上面说的A),但是不能用其来进行多线程同步控制publicclassCounter…

    2022年4月30日
    39
  • 关于Python缩进,我们该了解哪些?

    关于Python缩进,我们该了解哪些?Python是一门独特的语言,它的代码块是通过缩进(Indentation)来标记的(大部分语言都是使用花括号作为代码块的标记),具有相同缩进的多行代码属于同一个代码块。如果代码莫名其妙的乱缩进,Py

    2022年7月5日
    22
  • 文本挖掘实例[通俗易懂]

    文本挖掘实例[通俗易懂]文本挖掘junjun2016年2月4日文本分析的应用越来越广泛,今天就讲讲关于评论数据的那点事。评论数据的获取:一般通过网络爬虫的方式抓取各大网站的评论数据,本次分析数据就来源于携程网某酒店的评论,成功爬取该酒店的评论数据,于是我开始使用这些数据做相关的分析。(注意:数据分析、挖掘时,这部分工作可以有专门的人员来完成)1、加载数据和包#1)本文使

    2022年6月26日
    29
  • 阿姨想让13岁的儿子学Java编程,我拒绝了

    阿姨想让13岁的儿子学Java编程,我拒绝了大家好,我是锋哥;先爆丑照,为了你们有勇气继续阅读下去;前一段时间,有个阿姨找我学java,我懵逼了。我以为阿姨学着玩玩的,我就同意了。她说过段时间找我报名;后来,阿姨又找我阿姨想让她13岁的儿子跟我学编程,我想了下13岁应该六年级或者初一,不正是学习科学文化基础知识的时候吗。我这人有原则,有底线,也不想坑人,孩子太小,应用编程真不适合,也会耗费大量的时间和精力,耽误学业。孩子学应用编程前,应该至少有初中毕业文化,计算机简单基础,英语基础,应用软件基础,如果可以,还需要了解计算机组成原

    2022年4月30日
    55
  • fiddler和charles哪个好用_charles手机设置代理后上不了网

    fiddler和charles哪个好用_charles手机设置代理后上不了网前言Charles是收费软件,可以免费试用30天。试用期过后,未付费的用户仍然可以继续使用,但是每次使用时间不能超过30分钟,并且启动时将会有10秒种的延时。此时,我们只需网上找一个注册码即可解

    2022年7月28日
    3

发表回复

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

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