我正在构建一个像控制台一样工作的网站。我有一个状态脚本,用于检查该页面是否处于脱机状态,或者您是否被列入黑名单/白名单。我通过在我的数据库中查找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秒。 –