[英]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.