これは、ライブラリを使用せずにAJAXリクエストをサーバーに送信する通常のクライアント側です。
データベースについて:
DBには、2つの列と2つの行を持つテーブルが1つだけあります。 InnoDB
のストレージエンジン
[〜#〜]注[〜#〜]:これテストDBです。また、5000〜6000レコードの4つのテーブルと500レコード未満の18のテーブルを持つ別のDBがあります
client.php:
<html>
...
<body>
<button class="btn__">Send</button>
<script>
var btn = document.querySelector('.btn__');
btn.onclick = function()
{
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
// document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("POST", "server_files/server.php", true);
xmlhttp.send();
}
</script>
</body>
...
</html>
server.php(ケース#1):データベースへの接続クエリがありません
<?php
// $con = mysqli_connect("Host","username","pass","test_db");
echo json_encode([
'success' => true
]);
exit();
(応答には約59msかかります)
server.php(ケース#2):データベースへの接続クエリ
<?php
$con = mysqli_connect("Host","username","pass","test_db");
echo json_encode([
'success' => true
]);
exit();
(応答には約452ミリ秒かかります。これは発生しないはずであり、1週間前まで発生しませんでした)
データベースへの接続回線を含めると、応答に時間がかかるのはなぜですか?
編集:(よりよく理解するのに役立つかどうかを置くだけです)
実行するとSHOW PROCESSLIST;
クライアントがAJAXリクエストを送信しているとき、私はこれを見ます、
プロセスリストから、それはローカルデータベースではないようです。つまり、ローカルホスト上になく、ローカルホストまたは127.0.0.1を使用してアクセスしていません。
したがって、ネットワークまたはDNS関連の問題である可能性があります。 DNS解決の問題とネットワーク遅延の問題を確認してください。
DBサーバーが同じホスト上にあり、接続文字列でlocalhostを使用している場合は、127.0.0.1に変更してみてください