Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Долго выполняется PHP скрипт, при запросе ajax'ом


Автор: K0T9I 26.3.2012, 00:25
Не знаю в раздел javascript или сюда лучше подойдет. Попробую сюда.

Есть сампописная админка, в шаблонах подключен js файл, который при нажатии на любую ссылку добавляет к запросу 'ajax=1' и  делает ajax запрос на сервер.
В админке в зависимости от того, установлен ли параметр 'ajax' в запросе рендериться либо обычный html шаблон, либо xml ответ для ajax.
Так вот, при обновлении страницы или отключении ajax php скрипт отрабатывает за приемлимое время:
total execution time: 2215.17 ms (на домашнем компе локальный сервер, машинка слабовата поэтому 2 секунды, примите это за нормальное время)
При прямом добавлении параметра  'ajax=1'  в строку запроса и выдаче xml ответа непосредственно на страницу total execution time тоже в пределах нормы.
А вот при отработке через js скрипт той же самой страницы, что и в предыдущих запросах:
total execution time: 8186.78 ms (причем увеличение времени исполнения скрипта только в ie7, опера и гугл хром отрабатывают за нормальное время)
total execution time это время работы именно php скрипта, и я понять не могу, как влияет js скрипт на время выполнения серверного скрипта.

Прошу вашей помощи.

Автор: Wolf1994 26.3.2012, 06:32
IE использует отличный от других браузеров метод для AJAX запросов. Если тестирование идёт на локальном компьютере, то производительность старой версии этого браузера при запросе и обработке XML может замедлить сервер и увеличить время ответа.

Если браузер вспомогательный и открыт вместе с "основным", то нехватка оперативной памяти также может сильно замедлить систему.

Автор: K0T9I 26.3.2012, 07:03
Цитата(Wolf1994 @ 26.3.2012,  06:32)
Если тестирование идёт на локальном компьютере

То есть тормозит конкретно на локальном сервере и на удаленном не будет? Вообще я проверял на удаленном сервере, там время в IE порядка 30мс, как и в других браузерах, но ожидал какую-нибудь свинью от осла.

Автор: Wolf1994 26.3.2012, 07:40
Цитата(K0T9I @  26.3.2012,  07:03 Найти цитируемый пост)
Вообще я проверял на удаленном сервере, там время в IE порядка 30мс, как и в других браузерах

Совпадение времени выполнения на удалённом сервере говорит о том, что дело не в IE7.

Автор: Sentox 28.3.2012, 01:16
IE использует для ajax запросов ActiveX. Инстанцирование COM объекта так же занимает время, особенно если старые IE. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)