Не знаю в какую рубрику этот вопрос отнести. Суть такова, есть фильтр на сайте, а также модальные окна, все это добро работает на ajax получает нужные данные и соответственно для фильтра меняются цифры - количество существующих товаров, а для модалки - вывод товара. Работать работает, да вот только заказчик не доволен "как в прошлом веке, все медленно" ставлю таймер перед работой скрипта и после - показывает 1-2 секунды. Замерил скорость получения данных с бд и формирования ответа, примерно 0.06с. Рендер на странице тоже примерно такой же (очень мал). Остается время запроса/ответа клиента с сервером. Наткнулся на то что TTFB если я правильно понял это время как раз ожидания, ну или до приема первого байта. Google говорит что нужно не более 0.2с, в моем случае 0.7-1.5. Можно ли как то это сократить? Где и что искать? Или я не в том направлении иду?
Если формирование ответа с сервера правда 0.06с (в чем я сомневаюсь), то проблема в "пинге" до сервера, ответ идет слишком долго. Решением будет поменять сервер на близкий по локации к заказчику и целевой аудитории. Но мне кажется, ответ с сервера выше, т.к. все таки фильтр обычно много запросов делает.
Пробовал идеальный вариант тыкал на кнопки фильтра раз в несколько секунд, что-бы успевал приходить ответ. Поочередно отправлял запросы.
Может формирование ответа в Вашем понимании что то другое (прошу прощения новичек еще). В данном случае делаю так ставлю $time = microtime(true); в начале php скрипта и в конце $time_end = microtime(true) - $time;. Между ними происходит вытягивание из бд нужных даных и запись их в ответное сообщение. В случае фильтра обратно идет только 1 число, в случае модалки это данные типо заголовки, ссылки на изображения и тексты не большие. Вот это время и равно в среднем 0.06-0.08
Все перечисленное выше относится так же и к модальному окну.
Если важна CMS то это wordpress.
Алекс, я протестил время ответа через ajax. Вот что у меня вышло
ответ для показа модалки /wp-admin/admin-ajax.php?action=wp_construct_appartment&dataRequest=%7B%22idAppartment%22%3A%224454%22%7D
составляет ~0.8сек
ответ для показа товаров /wp-admin/admin-ajax.php?action=wp_get_appartment_now&dataRequest=%7B%22filter%22%3A%7B%22checkboxReady%22%3Afalse%2C%22checkboxBuilt%22%3Atrue%2C%22checkboxSell%22%3Atrue%2C%22checkboxLease%22%3Afalse%2C%22inputPriceFrom%22%3A%22%22%2C%22inputPriceTo%22%3A%22%22%2C%22inputSFrom%22%3A%22%22%2C%22inputSTo%22%3A%22%22%2C%22selectObject%22%3A%22%22%2C%22inputStock%22%3Afalse%7D%2C%22start%22%3A0%7D
составляет ~0.85сек
ответ для главной страницы /
составляет ~0.08сек
т.е. все таки код на сервере выполняется долго. Вы тестировали время для главной страницы, или для такой же, как я у казал выше для модалки?
Тестировал вот таким кодом
var start_time = new Date().getTime();
jQuery.get('ссылка', {},
function(data, status, xhr) {
var request_time = new Date().getTime() - start_time;
console.warn(request_time);
}
);
Алекс, нет, нужно ставить на всю работу скрипта (WordPress), т.е. именно в index.php Потом открыть по ссылке (которую я скинул), т.к. если в JSON попадет вывод echo, в js будет ошибка, и вы не увидите результат времени.
Я только заметил, тут не index.php, тут файл /wp-admin/admin-ajax.php, в нем и вставляйте в начале и конце подсчет времени. Как вставите, открываете в браузере эту ссылку, и смотрите, сколько выполнялся код. Если много, то проблема в скрипте (или слабом хостинге, можете на локалхосте протестировать).