2013-07-18 2 views
2

У меня проблема с проблемой. Когда я делаю запрос ajax, он проходит через штраф, но статус ждет чуть более 1 секунды. Мне это кажется очень высоким.Почему ajax ждет больше секунды?

Вот скриншот вкладки сети в хроме Network tab

Вот Аякса функция Я использую.

function subCommentSubmit() { 
     $('.subComment').on('submit', function() { 

      var url = "/laravel/public/utility/submitsubcomment"; // the script where you handle the form input. 
      // Submits the data with ajax, method type is POST 
      var currentElement = $(this); 
      var thatPar = currentElement.parent().parent(); 
      var liveSubCommSection = $('> .live-sub-comments', thatPar); 
      var commentLoader = $('> .loader-comments > .loader', thatPar); 

      var formData = currentElement.serialize(); 
      $('.new-reply', currentElement).val('').blur().trigger('autosize.resize'); 

      commentLoader.removeClass('hide').fadeIn(250, function() { 
       $.ajax({ 
         type: "POST", 
         url: url, 
         data: formData, // serializes the form's elements. 
         success: function(data) 
         {  
          commentLoader.fadeOut(250, function() { 
           commentLoader.addClass('hide'); 
           var response = JSON.parse(data); 
           var commentPost = $('<li class="single-user-reply"> <div class="user-ava-cont"> <a href="'+ response.userid +'" class="user-ava-a"><img src="../images/avatest1.png"> </a> </div><div class="s-w-user-details"><a href="'+ response.userid +'" class="s-w-poster upop">'+ response.username +' </a> <span class="s-w-timestamp">1 second ago</span><a href="#" class="likes-but notliked active">Like</a> <a href="#" class="likes-but liked">Liked</a><ul class="more-dropdown-cont" role="button"> <li class="dropdown minidrop"><button class="more-dropdown dropdown-toggle" role="button" data-toggle="dropdown"><i class="icon down"></i></button><ul class="dropdown-menu" role="menu" aria-labelledby="people"><li role="presentation"><a class="u-a-a" role="menuitem" tabindex="-1" href="#">Block User</a></li><li role="presentation"><a class="u-a-a" role="menuitem" tabindex="-1" href="#">Report Abuse</a></li></ul></li></ul><div class="s-w-user-post">'+ response.comment +'</div><div class="clear"></div></div></li>'); 
           commentPost.hide(); 
           liveSubCommSection.append(commentPost.fadeIn(250)); 
           subCommentSubmit(); 
          }); 
         } 
       }); 
      }); 
      currentElement.unbind('submit'); 
      // Ensures it doesn't route the form the normal way, and ajax takes over 
      return false; 

     }); 
    } 
+6

ajax не «ждет» самостоятельно. он будет реагировать, поскольку сервер отправляет данные. Реальный вопрос: «Почему laravel занимает второе место для обработки запроса». –

+0

Требуется ли секунда для сервера для обработки и обработки запроса? То, что вы ищете, - это сетевые запросы/ответы, а не профилирование выполнения кода JavaScript. AJAX ждет, потому что сервер не ответил. – David

+0

Является ли это последовательной проблемой? Это может быть медленный день для соединений. Это также может быть то, что делает сервер. –

ответ

1

Я бы просмотрел ваш файл PHP, потому что это, по-видимому, является источником вашей проблемы.

Я не знаком с опциями профайлинга Laravel, но что-то просто вы можете сделать это:

class utility{ 

    function submitsubcomment(){ 
     $start = microtime(true); 

     //Your code is here 

     echo (microtime(true) - $start); 
    } 

} 

Good Luck!

1
  1. Забудьте AJAX на мгновение. Просто создайте форму HTML и с действием /laravel/public/utility/submitsubcomment, методом POST и полями формы, как и раньше. Это продемонстрирует, что AJAX не виноват.
  2. Используйте эту форму, чтобы решить, почему сервер занимает так много времени. Получите PHP, чтобы регистрировать время между шагами, и тогда это обнаружит, когда вещи занимают время. Вы можете ускорить этот процесс, создав жгут, который устанавливает соответствующие переменные среды, а затем запускает его из командной строки.

Если вы используете базу данных, убедитесь, что у вас есть соответствующие индексы для запросов.

1

Проблема заключалась в том, что моя база данных была невероятно медленной. Сам код был отлично. Я подключался к локальной локальной базе данных с помощью localhost, что намного медленнее, чем использование 127.0.0.1. Как только я изменил хост БД, он исправил мою проблему!

Смежные вопросы