当前位置: 首页 > 编程笔记 >

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

东方飞捷
2023-03-14
本文向大家介绍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>

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

 类似资料:
  • 到“ws://example.app:8080/”的WebSocket连接失败:在收到握手响应之前连接已关闭

  • 问题内容: 我一直在网上搜索,试图找到一个直接的答案。有谁知道浏览器请求ajax的默认超时时间?还可以通过版本进行更改吗? 问题答案: 我认为浏览器的AJAX没有超时,只有同步或异步请求。同步-首先冻结JavaScript执行,直到请求返回;异步- 不冻结JavaScript执行,仅将请求从执行流中移出;如果您有回调函数,它将与正在运行的脚本并行执行该函数(类似于线程)

  • (这个问题的灵感来自对此线程的响应:WebSocket 服务器如何处理多个传入的连接请求? 我的理解是这样的: 假设客户端 IP = 1.1.1.1,服务器 IP = 9.9.9.9 > 浏览器选择一个随机的本地可用端口,例如 5555,并启动与服务器端口 80 的连接。因此,在客户端上,应表示 IP 连接,例如 (1.1.1.1 服务器在其端口80上调用并识别来自客户端的连接请求。然后服务器选择

  • 本文向大家介绍Ajax中浏览器和服务器交互详解,包括了Ajax中浏览器和服务器交互详解的使用技巧和注意事项,需要的朋友参考一下 在了解Ajax之前我们先了解一下浏览器和服务器之间如何进行交互的 1.浏览器向服务器发送请求 2.服务器接收到请求信息,根据不同的情况再返回给浏览器不同的信息 3.浏览器接收到信息,输出到当前页面上 上面介绍了浏览器和服务器交互的简单示意图,可以看到在最后一步,浏览器接收

  • 本文向大家介绍js与jQuery实现的兼容多浏览器Ajax请求实例,包括了js与jQuery实现的兼容多浏览器Ajax请求实例的使用技巧和注意事项,需要的朋友参考一下 ajax我们经常会用到的,但网上找到的大部份ajax兼容性都不强,下面自己改了一个不错的兼容性很强的ajax函数,同时后面介绍的jquery ajax 兼容性也很强。 一、纯js实现的Ajax实例: 二、jQuery $.ajax概

  • 问题内容: 是否可以使用ajax将文件从浏览器升级到FTP服务器? 问题答案: 不会。浏览器不提供允许从JavaScript写入FTP的API。 您可以将文件发布到HTTP端点,然后使用服务器端代码将其推送到FTP服务器。