• 技术文章 >web前端 >js教程

    ajax实现服务器与浏览器长连接的功能

    韦小宝韦小宝2018-01-10 09:54:54原创1394
    这篇文章主要介绍了ajax实现服务器与浏览器长连接的功能的相关资料,分享ajax源码给大家,对ajax感兴趣的小伙伴们可以参考一下本篇文章

    有时候,需要服务器主动给浏览器推送数据,这里用ajax来实现这种功能,具体请看这里:


    <script type="text/javascript" src="CSS/bootstrap-3.3.5-dist/js/bootstrap.min.js"></script>
    <script type="text/javascript">
      var uid = "{$uid}";
      var i = 0;
      var timer;
      $().ready(function(){
        //打开扫码登录模态框
        $('#login').click(function(){
          //如果用户已经登录,则返回
          if(uid){ 
            return ;
          }
          //打开模态框,通过remote选项从远程加载数据
          $('#loginModel').modal({
            remote: "{:U('user/login')}"
          });
        });
         
        //模态框隐藏之后清空数据
        $("#loginModel").on("hidden.bs.modal", function() {
          $(this).removeData("bs.modal");
        });
         
        //当模态框显示出来后,通过定时返回来向服务器请求数据,定时器是每三秒请求一次服务器
        $('#loginModel').on('shown.bs.modal', function (e) {
          timer = setInterval(ajax_request, 3000);
        });
      });
       
      //ajax 请求函数,
      function ajax_request(){
        i++;
        //如果已经请求20此没有请求成功,则强制结束,给出提示信息,因为每3s调用一次,供调用20次,大概就是一分钟的时间
        if(i > 20){
          $('.login_info1').html('<span style="color:red;">登录超时,如需登录请刷新页面~</span>');
          clearInterval(timer);
          return ;
        }
         
        $.ajax({
          type: "post",
          url: "{:U('User/login_qrcode')}",
          timeout : 3000,
          data: { "scene_id": $('#scene_id').val() },
          success: function (msg){        
            if(1 == msg.status){
              $('.login_info1').html('<span style="color:#0C9;">'+msg.info+'</span>');
              setTimeout(refresh, 3000);
              return ;
            }
          },
          error: function(){
          }
        });
      }
       
      //重载页面
      function refresh(){
        location.reload();
      }
    </script>


    以上就是本文的全部内容,希望对大家的学习有所帮助。

    相关推荐:

    关于ajax网络请求的封装实例

    Ajax回退刷新页面问题的解决办法

    AJAX请求中含有数组如何解决

    以上就是ajax实现服务器与浏览器长连接的功能的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Firefox webkit ajax
    上一篇:jquery和css实现侧边导航栏效果示例代码 下一篇:jquery处理checkbox复选框是否被选中实例代码分享
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• 深入了解React中的任务调度算法• 什么是闭包?聊聊javascript中闭包,看看闭包有哪些作用?• JavaScript常见的Number对象汇总• JavaScript原型与原型链知识点详解• angular如何进行性能优化?变更检测方式浅析
    1/1

    PHP中文网