Сейчас делаю проект, и при нажатии на некоторые кнопки должен срабатывать аякс. Пример: поставить оценку "+" статье. При нажатии на + уходит AJAX запрос, но дело в том, что в дебаггере его время 1.883 MS и колеблится вокруг него каждый раз. И дело ни в том, что находится в action, потому что даже если в экшне будет только return true; без всяких запросов к бд, то запрос выполняется все равно 1.443 MS, что как бы слишком много. Или допустим чтобы модальное окно открыть, его контент открывается тоже где то через секунду аж. Что может быть причиной этого вообще? Вот код примера выполнения аякса. Ничего лишнего вроде нет, но непонятки вообще.
$.ajax({
url: '/profile/like',
data: {id: id},
type: "POST",
success: function(res) {
},
error: function() {
}
});
P.S. Создал отдельно тестовый проект обычный, чтобы при нажатии на кнопку отправлялся аякс запрос, и он отправляется идеально. Сразу же срабатывает всё. А в проекте с Yii2 именно какой то косяк
Вы бы контролер показали, куда ajax прилетает, зачем нам Ваш js? Он то никак не влияет на скорость ответа. По опыту могу сказать, что дело не в yii, а у Вас. Так что давайте код.
Вы привели не достаточно данных для того чтобы хоть как то понять в чем дело такого продолжительного запроса.
Здесь следует учитывать что есть масса причин, которые могут влиять на время обработки запроса.
К примеру возможно у вас стоят обработчики событий на то или иное действие к примеру на afterAction, тоесть прежде чем выполнится actionExample(){ return true;} сработают обработчики события afterAction и т.д.
Самый оптимальный способ это профилировать код, и смотреть какой участок сколько занимает ресурсов и времени на выполнение
Эммм, весело, профайлинг показал что подключение к бд берет 1.005 ms
Погуглил, поменял в db.php localhost на 127.0.0.1, и все стало быстрее в 2-3 раза)
Чудно, но я всегда думал, что localhost это тоже самое что и 127.0.0.1...
Igor: Да, есть такой нюанс, как вариант можно открыть урл на который посылается аякс запрос и просмотреть какие запросы летят в бд через yii дебаг панель