как проверить, совпадают ли данные, поступающие из источника события - PullRequest
1 голос
/ 12 апреля 2020

У меня есть код, который получает данные из файла 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();    
?>

заранее спасибо !!!

Ответы [ 2 ]

1 голос
/ 12 апреля 2020

Так что это то, что я пробовал, и это сработало, если это то же самое, что он печатает текст, но если он отличается, он сообщает пользователю и изменяет переменную 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 голосов
/ 12 апреля 2020

Вы можете сохранить полученный ответ в одной переменной и проверить это с помощью e.data и сделать дальнейшие действия.

Для этого механизма вам понадобится одна переменная с большим сроком действия. Может быть глобальной областью действия, но определенно не локальной областью в обработчике обратного вызова.

...