Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: ПОМОГИТЕ УСКОРИТЬ AJAX ЗАПРОС
Форумы портала PHP.SU » » Вопросы новичков » ПОМОГИТЕ УСКОРИТЬ AJAX ЗАПРОС

Страниц (3): [1] 2 3 »
 

1. 246978 - 14 Мая, 2013 - 14:16:29 - перейти к сообщению
Ребята, подскажите как так , вот у на одной машине AJAX запросы выполняются 50-80мск, переношу на другую машину , коротая по конфигурации лучше чем предыдущая? и эти же запросы выполняются 1.5-2 секунды. Как вылечить или как ускорить выполнения запроса.
2. DelphinPRO - 14 Мая, 2013 - 14:27:52 - перейти к сообщению
В процессе выполнения запроса используется соединение с mysql?
3. 246978 - 14 Мая, 2013 - 14:59:20 - перейти к сообщению
да
4. LIME - 14 Мая, 2013 - 15:05:31 - перейти к сообщению
какой интересный собеседник...
а показать код можешь?
ответ будет да...
5. DelphinPRO - 14 Мая, 2013 - 16:02:16 - перейти к сообщению
У мускула\пыха есть такой глюк\фича: при соединении с базой соединение сначала пробуется установить по протоколу IPv6 (адрес ::1) и по истечению таймаута (1 секунда) подключается по IPv4 (127.0.0.1)

Проверьте наличие в hosts этой строчки
CODE (hosts):
скопировать код в буфер обмена
  1. ::1             localhost

у удалите ее (после чего перезагрузите веб-сервер).
Также, возможно, понадобится отключить IPv6 протокол в системе (у меня не понадобилось)

Если требуется IPv6 то ищите решение как его правильно настроить. я не в курсе.
6. 246978 - 14 Мая, 2013 - 16:55:59 - перейти к сообщению
Спасибо
7. LIME - 14 Мая, 2013 - 17:02:25 - перейти к сообщению
246978 неужто помогло
а на старой машине все обращения к базе тормозят или только на этом скрипте?
DelphinPRO за фичу спасибо...незнал
а как это ты определил...имхо разное может при переносе случиться
например отсутствие индексов(хз...вот проиндексировал новую базу а старую забыл)
8. Champion - 14 Мая, 2013 - 17:05:17 - перейти к сообщению
Да, еще сталкивался с тем, что на семерке mysql на localhost коннектится медленно, а на 127.0.0.1 - быстро. И не важно, прописан ли локалхост в hosts.
9. imya - 14 Мая, 2013 - 17:08:57 - перейти к сообщению
Champion пишет:
Да, еще сталкивался с тем, что на семерке mysql на localhost коннектится медленно, а на 127.0.0.1 - быстро. И не важно, прописан ли локалхост в hosts.


Интересно, не замечал разницы, посмотрю сегодня.
10. DelphinPRO - 14 Мая, 2013 - 17:10:21 - перейти к сообщению
Champion, полагаю, проблема в том же IPv6 по умолчанию
(Добавление)
LIME, опыт, интуиция, телепатия Улыбка (на самом деле такую проблему обсуждали на форуме open-server.ru)
11. 246978 - 15 Мая, 2013 - 12:40:32 - перейти к сообщению
Проблема не ушла. Смысл вот в чем . делаю маленький чат в кабинетах пользователей (Yii). Сначала все запросы обрабатывал сам Yii (т.е. запись в таблицу и чтение из неё было оформлено через AR). Но как выяснилось, инициализация контролеров, тоже тратить много времени. Поэтому ответы на AJAX запросы были вынесены в отдельный скрипт, минуя Yii и работа с БД на прямую средствами mysqli. Но скорость ответа сервера все равно сильная большая для чата, Локально все работает быстро примерно 30мск. под Win7 а вот на сервере где стоит FreeBSD там эти же запросы выполняются ~1ск. Вот и стал вопрос в чем разница, как это вылечить.
12. Zuldek - 15 Мая, 2013 - 12:45:29 - перейти к сообщению
без кода ваша проблема не решается. Возможно вы шлете такие ответы сервера, которые требуют от js каких-то долгих обработок.
13. 246978 - 15 Мая, 2013 - 12:50:35 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3.     function GetMessage($id_meeting)
  4.     {
  5.        
  6.                
  7.         $con = mysqli_connect(HOST, USER_NAME, PASSWORD, DATABASE)or die('ERROR CONNECT');
  8.         mysqli_query($con, 'SET CHARACTER SET utf8;');
  9.        
  10.        
  11.         $table_name = 'chat_online_' . $id_meeting;
  12.         $sql ="SELECT * FROM ". $table_name ." WHERE status = 1 ORDER BY enter_time ASC";
  13.  
  14.        
  15.         $result = mysqli_query($con, $sql);
  16.        
  17.         $text_messege = '';
  18.         while($row = mysqli_fetch_array($result))
  19.          {
  20.               $text_messege .= "<div class='chat' style ='border-radius: 3px; border:1px solid  #acaca1; padding:2px; margin:2px; background: #faf8d9;'>
  21.                                     <span class='author'>" . $row['author'] . "</span>
  22.                                     <span class='time'>" . $row['enter_time'] . "</span>
  23.                                     <br>
  24.                                     <span class='text' style ='width:760px;'>" . $row['messege'] . "</span>
  25.                                 </div>";
  26.          }
  27.         echo json_encode(array('text_messege'=>$text_messege));
  28.         mysqli_close($con);
  29.     }
  30.  
  31.  


Как можно объяснить то что на локале все работает быстрей
14. DelphinPRO - 15 Мая, 2013 - 13:06:00 - перейти к сообщению
246978 пишет:
Как можно объяснить то что на локале все работает быстрей
ну например пингом до вашего сервера Улыбка
вы сделайте замеры (microtime) найдите участок кода, который долго выполняется, и посмотрим что там.
15. Zuldek - 15 Мая, 2013 - 13:08:03 - перейти к сообщению
Например тем, что, обычно, не извлекают все сообщения, а только те, которые юзеру ещё не отсылались. А у вас, если верить коду вы каждый раз извлекаете все записи таблицы.
Дальше. Какой смысл слать юзеру каждый раз в каждом сообщении одну и туже разметку?!
У вас 80% вашего ответа от сервера - ненужный мусор отъедающий трафик!
Цитата:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class='chat' style ='border-radius: 3px; border:1px solid  #acaca1; padding:2px; margin:2px; background: #faf8d9;'>
  2.                                     <span class='author'>"

За вот такое в аяксе руки бы вообще отрывал: ни одного полезного байта не передают эти строки. Если js на клиенте написано в таком же духе, то я удивляюсь почему ваше приложение работает быстро на локалхосте.

 

Powered by ExBB FM 1.0 RC1