zoukankan      html  css  js  c++  java
  • 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);

                     }

                 }

             })

         }

  • 相关阅读:
    表单小知识
    HTML列表,表格与媒体元素
    P1008 三连击
    打鱼晒网问题
    最小编辑距离算法
    算法设计与分析--01背包问题(动态规划法解决)
    文件读写函数
    C语言中数据输入输出到文件操作freopen()函数(1)
    输入输出框架(未完待续)
    阶乘1到阶乘n的和
  • 原文地址:https://www.cnblogs.com/cyp926/p/13754809.html
Copyright © 2011-2022 走看看