Maison > développement back-end > tutoriel php > PHP implémente le push anti-ajax

PHP implémente le push anti-ajax

php中世界最好的语言
Libérer: 2023-03-22 07:36:02
original
1183 Les gens l'ont consulté

Cette fois, je vais vous présenter PHP pour implémenter le push anti-ajax. Quelles sont les précautions pour que PHP implémente le push anti-ajax. Ce qui suit est un cas pratique, jetons un coup d'œil.

Fichier d'entréeindex.html

<!DOCTYPE HTML>
<html>
<head>
  <title>反ajax推送</title>
  <style>
    .send{color:#555;text-align: left;}
    .require{color:blue;text-align: right;}
    .content_box{text-align: center;margin: 20px;
          border: 1px solid #ddd;padding: 20px;}
  </style>
  <script src="http://code.jQuery.com/jquery-1.11.2.min.js"></script>
</head>
<body>
  <p class="content_box" id="content_box_title" style="border: none;">消息框</p>
  <p class="content_box" id="content_box">
  </p>
  <p style="width: 450px;margin: 0 auto;">
    <select id="username" style="font-size: 20px;">
      <option value="1" selected="selected">1</option>
      <option value="2">2</option>
    </select>
    <input type="text" style="font-size: 20px;" value="" id="send_text">
    <button id="btn_send" style="font-size: 20px;">发送</button>
    <button id="btn_link" style="font-size: 20px">连接</button>
  </p>
  <p class="error_tip" id="error_tip" style="color: red;">
  </p>
  <script>
    $(function(){
      //发送消息
      $('#btn_send').click(function(){
        var send_text = $('#send_text').val();
        if(send_text.length <= 0){
          $(&#39;#error_tip&#39;).html(&#39;不能输入空值&#39;);
        }else{
          send(send_text);
        }
      });
      //按回车键发送消息
      $(&#39;#send_text&#39;).on(&#39;keyup&#39;,function(e){
        if(e.keyCode == 13){
          $(&#39;#btn_send&#39;).trigger(&#39;click&#39;);
        }
      });
      //建立通讯链接
      $(&#39;#btn_link&#39;).click(function(){
        connect();
        var _this = $(this);
        _this.attr(&#39;disabled&#39;,true);
        _this.html(&#39;已连接&#39;);
      });
    });
    //建立通讯连接函数
    function connect(){
      $(&#39;#content_box_title&#39;).html($(&#39;#username&#39;).val()+&#39;的消息窗口&#39;);
      $.ajax({
        data:{&#39;user&#39;:$(&#39;#username&#39;).val()},
        url:&#39;ajaxPush.PHP&#39;,
        type:&#39;get&#39;,
        timeout:0,
        dataType:&#39;json&#39;,
        success:function(data){
          $(&#39;#content_box&#39;).append(&#39;<p class="require">'+data.msg+'</p>');
          connect();
        }
      });
    }
    //发送消息函数
    function send(massege){
      var user =$('#username').val();
      $.getJSON('write.php',{'msg':massege,'user':user},function(data){
        if(data.sf){
          $('#content_box').append('<p class="send">'+massege+'</p>');
          $('#send_text').val('');
        }else{
          $('#error_tip').html('输入保存错误!');
        }
      });
    }
  </script>
</body>
</html>
Copier après la connexion

entrée de traitement ajax write.php

<?php
/**
 * Created by TXM.
 * Time: 2015/4/18 13:13
 * function:
 */
$filename = dirname(FILE).&#39;/data.txt&#39;;
$isread_file = dirname(FILE).&#39;/isread.txt&#39;;
$user = dirname(FILE).&#39;/user.txt&#39;;
//写入消息,消息未读,谁发送的消息
file_put_contents($filename,$_GET[&#39;msg&#39;]);
file_put_contents($isread_file,&#39;0&#39;);
file_put_contents($user,$_GET[&#39;user&#39;]);
echo json_encode(array(&#39;sf&#39;=>true));
Copier après la connexion

Pousse d'interrogation longue ajaxPush.php

<?php
/**
 * Created by TXM.
 * Time: 2015/4/18 13:12
 * function:
 */
$filename = dirname(FILE).&#39;/data.txt&#39;;
$isread_file = dirname(FILE).&#39;/isread.txt&#39;;
$userfile = dirname(FILE).&#39;/user.txt&#39;;
$get_user = $_GET[&#39;user&#39;] == &#39;1&#39;?&#39;2&#39;:&#39;1&#39;;
$msg=&#39;&#39;;
while(1){
  $msg = file_get_contents($filename);
  $isread = file_get_contents($isread_file);
  $user = file_get_contents($userfile);
  //是对方发送的消息,设置消息已读,退出循环。
  if($isread == &#39;0&#39; && $get_user == $user){
    file_put_contents($isread_file,&#39;1&#39;);
    break;
  }
  sleep(1);
}
echo json_encode(array(&#39;msg&#39;=>$msg));
Copier après la connexion

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Implémentation de la fonction de chiffrement de hachage unidirectionnel PHP

Optimisation des statistiques de données de synchronisation PHP+MySQL

Comment utiliser PHPnamespace

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal