PHP响应变得非常慢(使用MySQL)


php response getting very slow (with mysql)

我正在开发一个仪表板,它也有通知,所以我计划使用 ajax,php,mysql 进行实时通知。

这是我在index.php上的JavaScript代码:

comres = {
                            connect: function() {
                                    return $.ajax({
                                            url: 'read_notification.php',
                                            type: 'POST',
                                            success: function(evt, request) {
                                                     alert(evt);
                                            },
                                            complete: function() {
                                                    comres.connect();
                                            }
                                    });
                            }
                    }
                    $(document).ready(function() {
                            comres.connect();
                    });

以下是我read_notification.php

<?php


 require_once("db.php");

 $query=mysqli_query($db,"select * from notifications");
while(mysqli_num_rows($query) < 1)
{
}
$query1 = mysqli_query($db,"select * from notifications");
 $row = mysqli_fetch_array($query1);
 $id=$row['id'];
  $notification=$row['notification'];

 echo "you have a notification ".$notification
mysqli_query($db,"delete from ticket.handover_response where id='$id'");

 ?>

以下是工作流程

  1. JavaScript 在加载index.php时调用read_notification.php
  2. read_notification.php while 循环触发对数据库的查询,而循环连续时数据库在通知表上仍有任何一个条目
  3. 当数据库表有一个条目时,while 循环将失败,响应返回到索引.php

这里的工作流程没有问题,但是在数据库上有记录后我有延迟(php不会突然从数据库中读取,它又过了几秒钟就可以工作了),请提出原因或解决方案,谢谢

试试这个

$(document).ready(function() {
setInterval(function(){
//set up an ajax request every 2 sec
   comres.connect();
},2000);
});

在您的 php 中,只需显示基于某个标志变量的新通知.也就是说,如果用户单击通知,请将标志设置为 1(不再显示)否则将其标记为零。