• ajax轮询原理及其实现方式


    ajax轮询原理及其实现方式

    ajax轮询的两种方式

    方式1设定一个定时器,无论有无结果返回,时间一到就会继续发起请求,这种轮询耗费资源,也不一定能得到想要的数据,这样的轮询是不推荐的

    方式2

    轮询就是在第一次请求的时候,如果返回数据了那么就在成功的回调里面再次发起这个请求,就像递归一样,调用本方法。

    如果时间太久,失败了,同样的再次调用这个请求,也就是本函数。当然,长轮询也需要后台配合,没有数据改变的时候就不用返回,或者约定好逻辑。

    轮询的应用场景

    即时通讯

    排行榜

    http 短轮询

    1)介绍:http 短轮询是 server 收到请求 不管是否有数据到达都直接响应http 请求;如果浏览器收到的数据为空,则隔一段时间,浏览器又会发送相同的http请求到server 以获取数据响应;

    2http 短轮询的缺点:消息交互的实时性较低(server端到浏览器端的数据反馈效率低);

    http 长轮询 和 短轮询的异同

    1)相同点:当server 的数据不可达时,基于http长轮询和短轮询 的http请求,都会 停留一段时间;

    2)不同点:http长轮询是在服务器端的停留,而http 短轮询是在 浏览器端的停留;

    3)性能总结:从这里可以看出,不管是长轮询还是短轮询,都不太适用于客户端数量太多的情况,因为每个服务器所能承载的TCP连接数是有上限的,这种轮询很容易把连接数顶满;

    实现代码

    setInterval("test()",500);

         function test() {

             $.ajax({

                 url: '/new_window_url/',

                async:true,

                type: 'get',

                 success: function (data) {

                     var new_url =  $('#new_iframe').attr('src');

                     if (new_url !== data){

                         $('#new_iframe').attr('src', data);

                     }

                 }

             })

         }

  • 相关阅读:
    判断字符串是否含有特殊字符和emoji表情
    支付宝PC端支付接口使用流程
    AccessControlAllowOrigin跨域
    antdvue upload组件使用alioss sts上传图片
    微前端的几种实现方案
    使用Powershell脚本实现微信多开
    DebianVIM取消自动缩进
    DebianVIM设置mouse=a不生效解决办法
    rest接口的函数需要是public
    No provider available from registry for service com.xxx.TestService:1.0.0 on consumer use dubbo version 2.6.2, please check status of providers(disabled, not registered or in blacklist)
  • 原文地址:https://www.cnblogs.com/cyp926/p/13754809.html
Copyright © 2020-2023  润新知