Heim  >  Artikel  >  Web-Frontend  >  Ajax implementiert die Funktion einer langen Verbindung zwischen Server und Browser

Ajax implementiert die Funktion einer langen Verbindung zwischen Server und Browser

韦小宝
韦小宝Original
2018-01-10 09:54:542127Durchsuche

Dieser Artikel stellt hauptsächlich die relevanten Informationen über die Funktion von Ajax zur Realisierung einer langen Verbindung zwischen Server und Browser vor. Er teilt den Ajax-Quellcode mit allen Freunden, die sich für Ajax interessieren.

Ja Manchmal , der Server muss Daten aktiv an den Browser übertragen, um diese Funktion zu implementieren. Weitere Informationen finden Sie hier:


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


Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Verwandte Empfehlungen:

Über das Kapselungsbeispiel einer Ajax-Netzwerkanforderung

Lösung für das Problem des Ajax-Rollbacks und der Aktualisierung der Seite

So lösen Sie das Problem, wenn eine AJAX-Anfrage ein Array enthält

Das obige ist der detaillierte Inhalt vonAjax implementiert die Funktion einer langen Verbindung zwischen Server und Browser. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn