如何检查来自事件源的数据是否相同

问题描述 投票:0回答:2

我有通过事件源或严重事件从php文件中获取数据的代码,但我想检查输入的数据是否与上次已接收到的数据相同(如果可能)如果不同,则应运行一个函数

这里是javascript

  let obj=new EventSource('php/data.php');
  obj.onmessage=function(e){
  let chat  = e.data;
  console.log(chat);
}

这样的东西

这是PHP

<?php
header("Content-type:text/event-stream");
header("Cache-Control:no-cache");
include('connect.php');
$select = "SELECT * from chat where senderid = 1"; 
    $res = mysqli_query($conn, $select);
if($row = mysqli_fetch_assoc($res))
    {
        $reciver = $row['message'];
    }
echo "data:$reciver/".PHP_EOL;
    echo PHP_EOL;
    ob_flush();
    flush();    
?>

提前感谢!

javascript php server-sent-events
2个回答
0
投票

所以这就是我的想法,并且有效如果相同,则输出文本,如果不同,则告诉用户,并将变量ev更改为新数据。

var source = new EventSource("sample.php");
var ev='';
var n =0;
source.onmessage = function(e) {
  if(n==0)
  {
  chat= e.data
  n=1;
  }
  if(n==1)
  {
    if(ev == event.data)
    {
      document.getElementById('result').innerHTML += 'it is the same<br>';
      n=1;
    }
    else{
      document.getElementById('result').innerHTML += 'it is not the same<br>';
      n=0;
    }
  }

};

0
投票

您可以将收到的响应保存在一个变量中,并使用e.data进行检查,然后执行进一步操作。

对于这种机制,您需要一个具有更长寿命的变量。可能是全局范围,但肯定不是回调处理程序中的局部范围。

© www.soinside.com 2019 - 2024. All rights reserved.