(ВАЖНО) ИЗМЕНИТЬ 3: Запуск testajax2.php сам по себе и НЕ AJAX. Продолжительность примерно такая же, 1,02-1,03. Итак, я думаю, это означает, что проблема в PHP-MYSQL или XAMPP?? Когда пробежал запрос phpmyadmin, вот результат: Показывая строки 0 - 29 (~ 50 всего, запрос занял 0.0015 сек). Похоже, что проблема заключается не в Ajax, а, возможно, в PHP. Помогите пожалуйста... (Я также только что редактировал заголовок вопроса.)
Ответ: Добавьте следующую строку в файл hosts, расположенный в "C:\Windows\System32\drivers\etc"
127.0.0.1 localhost
Вопрос до: Нормально ли для JQuery Ajax с запросами sql на другой стороне есть минимальная длительность 1 сек? Я пробовал
$.get
, $.post
, $.getjson
, $.ajax({type:'POST'})
, $.ajax({type:'GET'})
. Как я уже сказал, это минимум, это может ухудшиться примерно до 3 секунд. Я сомневаюсь, что это sql-запросы, хотя, когда я пытаюсь их использовать в phpmyadmin, результаты приходят очень быстро.
Не имеет значения, если запросы очень просты, а таблица имеет только 2 элемента, она все равно будет следовать за минимальным значением 1 с. Я использую последний XAMPP, и я не знаю, имеет ли это значение, но я просматриваю файлы через localhost и 127.0.0.1. Спасибо!
EDIT: Спасибо за ответ, ребята. Я запускаю его в локальной среде, на том же ноутбуке я включил эти файлы. JQuery обновлен. Возвращаемое значение /array - json_encoded. Я использую mysqli. База данных находится в InnoDB, и в ней всего около 5 таблиц, и на них почти ничего нет. Здесь очень простой пример запроса:
index.php
var test_id =2;
testcall();
function testcall(){
$.ajax({
url: 'testajax2.php',
type: 'POST',
data: {test_id: test_id},
success: function(data){
}
});
}
testajax2.php
$mysqli = new mysqli('localhost', 'root', '', 'testdb');
$mysqli->set_charset("utf8");
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
exit();
}
$testreceive = $_POST['test_id'];
$query = "SELECT First_Name from tblperson";
$result = $mysqli->query($query);
$row = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($row);
tblperson содержит 50 записей, и всего 4 столбца. Согласно Firebug, для выполнения этой чрезвычайно простой задачи потребовалось 1,03. Я не уверен, что это на самом деле означает, но просматривая вкладку Net в Firebug, панель полностью фиолетовая. 0 и 1.03s Ожидание. + 1.03s и 0 Получение.
ИЗМЕНИТЬ 2: Также не имеет значения, отправляю ли я их как json_encode($row)
или foreach($row as $value){ echo $value['First_Name']; }
. Это будет по меньшей мере 1 сек. Я пробовал Chrome и Safari, и хотя у меня не может быть точной продолжительности, я могу сказать, что это примерно то же самое. Но для простого вызова ajax с NO SQL QUERIES. Если я правильно помню, это очень быстро. Я вернусь с образцом и длительностью вывода.