簡體   English   中英

PHP的響應變得非常慢(與MySQL)

[英]php response getting very slow (with mysql)

我正在開發一個儀表板,它也有一個通知,所以我計划使用ajax,php,mysql進行實時通知。我已經做到了,但mysqli(從php)讀取的速度很慢,無法從數據庫中獲取結果,如下是我的代碼

這是我在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. 加載index.php時,javascript調用read_notification.php
  2. read_notification.php使用while循環將查詢激發到數據庫,而連續循環仍然使數據庫在通知表上具有任何一項
  3. 當數據庫表中有一個條目時,while循環獲取失敗並且響應返回到index.php

這里的工作流程沒有問題,但是在數據庫上有記錄后我有一個延遲(php不是突然從數據庫讀取,幾秒鍾后它就開始工作了),請提出原因或解決方案,謝謝

嘗試這個

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

在您的php中,僅顯示基於某些標志變量的新通知。即,如果用戶單擊通知,則將標志設置為一(不再顯示),否則將其標記為零。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM