我正在構建一個像控制檯一樣工作的網站。我有一個狀態腳本,用於檢查該頁面是否處於脫機狀態,或者您是否被列入黑名單/白名單。我通過在我的數據庫中查找IP來做到這一點。之後,我使用一個開關來指導用戶。我使用javaScript重定向,因爲該網站使用ajax,我無法獲得標題('Location:xxx');與它一起工作(另一個問題)。優化MySqli請求
當我使用狀態頁面運行該站點時,它的加載速度降低了一倍,並且每次用戶使用命令時都無法幫助該頁面加載此腳本。
對於如何優化加載速度,您有什麼建議嗎?我爲所有想法開放。謝謝你的時間。
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
};
$conn = new MySQLi('localhost', 'xxx', 'xxx', 'xxx');
$statusRank = "";
$sql = "SELECT enable FROM global WHERE enable = '1' AND setting = 'frontend'";
$query = $conn->query($sql) or die ($conn->error);
if(mysqli_num_rows($query)) {
$statusRank = "offline";
}
$sql = "SELECT ip FROM blacklist WHERE ip = '$ip'";
$query = $conn->query($sql) or die ($conn->error);
if(mysqli_num_rows($query)) {
$statusRank = "blacklist";
}
$sql = "SELECT ip FROM whitelist WHERE ip = '$ip'";
$query = $conn->query($sql) or die ($conn->error);
if(mysqli_num_rows($query)) {
$statusRank = "whitelist";
}
switch ($statusRank) {
case "blacklist":
?><script>window.location.replace("include/blacklist.php");</script><?php
break;
case "whitelist":
break;
case "offline":
?><script>window.location.replace("include/offline.php");</script><?php
break;
default:
};
哪一個是加載速度慢的查詢? 「兩次慢」是沒有價值,你可以使用..是毫秒?分鐘?小時?沒有你的表格結構/索引,就沒有機會幫助你。 – Olli
對不起......我從接近瞬間開始,可能會在300-500毫秒左右,當腳本啓用+/- 2秒。 –