grigor007
@grigor007
http://goldapp.ru

Почему один и тот же последовательный запрос работает медленнее?

Добрый день всем,

На одном проекте ( без CMS ) я заметил что одно и то же действие ( например удаление поста ajax запросом ) выполняется медленнее с каждым разом.

То есть на странице я нажал «удалить» — пошел ajax запрос, вернулся через 80ms. Прокручиваю вниз — жму удалить — post запрос уже вернулся через 3s и так далее… Следующий вернется через 8 секунд

Не представляю куда копать? Может у хостера что-то?
  • Вопрос задан
  • 4457 просмотров
Пригласить эксперта
Ответы на вопрос 7
Anonym
@Anonym
Программирую немного )
Извините конечно, но с таким кодом — неудивительно.
Ответ написан
ese
@ese
Front-end developer
Ответ от запроса в браузер с задержкой возвращается или в JS callback? Если в браузер, то первым делом залогируйте все, что касается этого запроса на сервере (время выполнения в базе, время обработки и т.д.). Станет понятным в какую сторону копать.
Ответ написан
7workers
@7workers
В каком месте тормозит? Вы смотрели во вкладку network в хроме developer tools?
Ответ написан
lightsgoout
@lightsgoout
Ну надо попрофилировать код, можно xdebug'ом, а можно просто воткнуть $time_start = microtime(true); <кусок кода> $time_end = microtime(true) - $time_start; и посмотреть сколько времени выполнялся каждый кусочек.

P.s. код жесть: WHERE id = ".$_POST['id']." — sql-инъекция
Ответ написан
grigor007
@grigor007 Автор вопроса
http://goldapp.ru
Странно,

Вот запрос этот медленно выполняется со второго раза ( чем дальше, чем медленнее )

			$res = mysql_query("INSERT INTO 
								b_lists_users_ids 
								SET user_vk_id = ".$_POST['user_vk_id']."
								, bl_acc_to_app = '1'
								, not_srch_posts_vk = '1'
								, reason = '".mysql_real_escape_string($_POST['reason'])."'
								, user_vk_id_add = '".$_SESSION['vk_id']."'
								, date_add = UNIX_TIMESTAMP()
								, user_vk_id_edit = '".$_SESSION['vk_id']."'
								, date_edit = UNIX_TIMESTAMP()
								ON DUPLICATE KEY UPDATE
								is_active = '1'
								, bl_acc_to_app = '1'
								, not_srch_posts_vk = '1'
								, reason = '".mysql_real_escape_string($_POST['reason'])."'
								, user_vk_id_edit = '".$_SESSION['vk_id']."'
								, date_edit = UNIX_TIMESTAMP()
								");


Может какая настройка в mysql?
Ответ написан
Casus
@Casus
Наугад: попробуйте скопировать данные из сессии и закрить её в начале скрипта.

<?php session_start(); $sessionData = $_SESSION; session_close();
Ответ написан
@artishok
кратко
А если попробовать mysql_unbuffered_query?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы