簡體   English   中英

優化jQuery觸發MySQL查詢

[英]Optimize jQuery triggered MySQL-Query

您好,這個偉大的社區!

通過閱讀此處的許多問題和答案,我已經學到了很多東西。 所以這是我目前的問題:

我當前正在創建一個簡單的代碼,其中包括PHP,MySQL和jQuery,用於簡單的新聞報道。 目的是檢查數據庫中的更改,而無需重新加載整個網頁。 如果數據庫中有更改,將執行javascript以重新加載整個網頁。 因此,我要避免用戶必須手動重新加載網頁。

這很好用!

但是有一個問題:當網頁上的用戶太多時,會出現“連接過多” -Mysql錯誤。 我認為發生這種情況是因為有許多並行運行的update()函數。

您有一個如何優化此代碼的想法嗎?

 <script> function updates(){ $('#updates').load('updates.php'); } setInterval("updates()", 1000); </script> 
 <div id="updates"></div> 

updates.php

<?php 

// Get latest value the database
$result = mysql_query("SELECT update FROM updates_db");
$row = mysql_fetch_object($result);

// Compare the value from the database with the current value which is saved in a session
if($_SESSION['update'] != $row->update) {

// If the values do not match, update the session and reload the whole webpage
$_SESSION['update'] = $row->update;

echo '<script>
location.reload();
</script>'

}

請嘗試類似這樣的操作,而不是刷新整個頁面。

的PHP

<?php

header('Content-type: application/json');

$result = mysql_query("SELECT update FROM updates_db");
$row = mysql_fetch_object($result);

if (($update = $_SESSION['update']) != $row->update) {
    $_SESSION['update'] = $row->update;
    echo json_encode(['update' => null]);
    exit;
}

echo json_encode(['update' => $update]);

Java腳本

$.post('updates.php')
    .done(function( data ){
        if( data.update){
            //update DOM with new update
        }
    });

並增加您的超時間隔。 一個請求/ 1000ms非常頻繁。

暫無
暫無

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

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