轮询和长轮询_http长轮询

轮询和长轮询_http长轮询轮询:说白了就是客户端定时去请求服务端,是客户端主动请求来促使数据更新;长轮询:说白了也是客户端请求服务端,但是服务端并不是即时返回,而是当有内容更新的时候才返回内容给客户端,从流程上讲,可以理解

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

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

 

轮询:说白了就是客户端定时去请求服务端,  是客户端主动请求来促使数据更新;

长轮询:说白了也是客户端请求服务端,但是服务端并不是即时返回,而是当有内容更新的时候才返回内容给客户端,从流程上讲,可以理解为服务器向客户端推送内容;

    

从中可以看出区别:

轮询:

  1:大量耗费服务器内存和宽带资源,因为不停的请求服务器,很多时候 并没有新的数据更新,因此绝大部分请求都是无效请求

  2:数据不一定是实时更新,要看设定的请求间隔,基本会有延迟。

长轮询:

  1:解决了轮询的两个大问题,数据实时更新;

  2:唯一的缺点是服务器在挂起的时候比较耗内存;

 

web通信中的 长连接 长轮询

基于HTTP的长连接,是一种通过长轮询方式实现“服务器推”的技术,它弥补了HTTP简单的请求应答模式的不足,极大地增强了程序的实时性和交互性。

 

什么是长连接、长轮询?

  简单点就是客户端不停的向服务器发送请求以后去最新的数据信息。这里的 ‘不停’ 其实是有停止的。只是我们人眼无法分辨是否停止,它只是一种快速的停下然后立即开始连接而已。

 

应用场景

  长连接、长轮询一般应用与webIM、ChatRoom和一些需要及时交互的网站应用中。web版微信二维码 webQQ HI网页版,Facebook IM等 

 

优缺点 

  轮询:客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息并关闭连接。 
  优点:后端程序编写比较容易。 
  缺点:请求中有大半是无用,浪费带宽和服务器资源。 
  实例:适于小型应用。

  长轮询:客户端向服务器发送Ajax请求,服务器接到请求后hold住连接,直到有新消息才返回响应信息并关闭连接,客户端处理完响应信息后再向服务器发送新的请求。 
  优点:在无消息的情况下不会频繁的请求,耗费资源小。 
  缺点:服务器hold连接会消耗资源,返回数据顺序无保证,难于管理维护。 
  实例:WebQQ、Hi网页版、Facebook IM。

 

  长连接:在页面里嵌入一个隐蔵iframe,将这个隐蔵iframe的src属性设为对一个长连接的请求或是采用xhr请求,服务器端就能源源不断地往客户端输入数据。 
  优点:消息即时到达,不发无用请求;管理起来也相对方便。 
  缺点:服务器维护一个长连接会增加开销。 
  实例:Gmail聊天

  Flash Socket:在页面中内嵌入一个使用了Socket类的 Flash 程序JavaScript通过调用此Flash程序提供的Socket接口与服务器端的Socket接口进行通信,JavaScript在收到服务器端传送的信息后控制页面的显示。 
  优点:实现真正的即时通信,而不是伪即时。 
  缺点:客户端必须安装Flash插件;非HTTP协议,无法自动穿越防火墙。 
  实例:网络互动游戏。

 

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

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

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


相关推荐

  • nodejs写入json文件_json文件可以删除吗

    nodejs写入json文件_json文件可以删除吗哈喽!nodejs的文件系统,接触过node的对node的文件系统肯定不会陌生,这两天我就在思考一个问题,我是否可以在本地操作我的本地json文件,这样一个本地的文本数据库就有了,如果是便签之类,记录的软件,我完全可以不用连后台的数据库,我可以自己操作本地的json文件,自己用node写后台,答案是肯定的,下面我们就一起来实现一下吧,对本地json文件的增、删、改、查1.增首先我们先看一下…

    2022年10月12日
  • python趣味编程100例pdf(python简单实例)

    1#题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?代码:23h=04li=[]5foriinrange(1,11):6s=100/(2**(i-1))7li.append(s)89forxinli:10h+=x11print(li)12print(…

    2022年4月17日
  • 51单片机系列有哪些类型_51单片机1602液晶显示原理

    51单片机系列有哪些类型_51单片机1602液晶显示原理Lcd液晶屏幕带有背光显示,可选择蓝光白光黄光三种背光颜色的屏幕,它更具有美光性,在实际生活中有广泛的应用。实物图原理图RS:1为数据/0为指令;RW:1为读/0为写;E1为数据有效,下降沿执行指令示例代码main.c#include”reg52.h” //此文件中定义了单片机的一些特殊功能寄存器#include”lcd.h”typedefunsignedintu16; //对数据类型进行声明定义typedefunsignedcharu8;u8Disp

    2022年9月17日
  • Clickhouse修改字段类型[通俗易懂]

    Clickhouse修改字段类型[通俗易懂]Clickhouse的列操作ALTERTABLE[db].name[ONCLUSTERcluster]ADD|DROP|CLEAR|COMMENT|MODIFYCOLUMN…在查询中,指定一个或多个逗号分隔操作的列表。每个操作都是对列的操作。支持以下操作:ADDCOLUMN—Addsanewcolumntothetable. DROPCOLUMN—Deletesthecolumn. CLEARCOLUMN—Resetscolum…

    2022年9月6日
  • MYSQL数据类型_c语言数据类型详解

    MYSQL数据类型_c语言数据类型详解上一篇博客中我们学习了MySQL的基础知识以及表结构的相关操作,知道了MySQL中常用的数据类型有数值型、字符串型、日期时间类型下面我们来使用一下这些数据类型。数值类型首先数值类型分为整型和浮点型我们先来看看整型整型首先创建一个表CREATETABLEint_db(aTINYINT,bSMALLINT,cMIDDLEINT,dINT,eB…

    2022年9月21日
  • Java日志管理最佳实践「建议收藏」

    原文出处:http://www.ibm.com/developerworks/cn/java/j-lo-practicelog/。感谢原作者,感谢ibm网站,里面有好多的精华帖。日志记录是应用程序运行中必不可少的一部分。具有良好格式和完备信息的日志记录可以在程序出现问题时帮助开发人员迅速地定位错误的根源。对于开发人员来说,在程序中使用日志API记录日志并不复杂,不过遵循

    2022年4月11日

发表回复

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

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