2013-04-10 2 views
5

Я построил пост ajax, и я отправляю некоторые данные в другой файл php через него, наконец, делая живой поиск ... но дело в том, что он немного медленный, когда я печатаю что-то внутри box, ajax занимает 1-2 секунды, чтобы сжечь .... Я хочу, чтобы поиск был похож на поиск youtube или поиск в facebook, очень быстро, когда я печатаю что-то там, он сразу показывает предложения ... любые идеи, как я могу исправить это ?JQuery ajax is slow

Вот код:

$("#search").keyup(function(){ 
      var value = $(this).val(); 
      var categ = $("#categ").val(); 
       if (value.length >= 1) 
       { 
        $.ajax({ 
         type: "POST", 
         url: "../core/search.php", 
         data: { string : value , categ : categ }, 
         success: function(result){ 
          $(".each_movie").hide(); 
          $(".search_movie").remove(); 
          $("#movies").append(result); 
         } 
        }); 
       } 
       else 
       { 
         $(".each_movie").show(); 
         $(".search_movie").remove(); 
       } 
    }); 

и PHP

$src = $_POST['string']; 
$categ = $_POST['categ']; 

$sql = mysql_query("SELECT * FROM movies WHERE `$categ` LIKE '%".$src."%' ") or die(mysql_error()); 
while ($sql_grab = mysql_fetch_assoc($sql)) 
{ 
    ?> 
     <div class="search_movie"> 
     <p style="margin-bottom:5px;font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif;color:rgba(255,255,255,0.3);font-size:12px;">Din: <?php echo $sql_grab['airdate']; ?> in cinematografe.</p> 
     <table> 
      <tr> 
       <td rowspan="2" valign="top"><img class="main_pic" src="<?php echo $sql_grab['mainpic']; ?>" width="180px" /></td> 
       <td><p class="name"><?php echo $sql_grab['name']; ?></p></td> 
      </tr> 
      <tr> 
       <td><div class="desc_wrapper" id="<?php echo $id; ?>" style="display:inline-block;"><p class="desc"><?php echo mysql_real_escape_string($sql_grab['description']); ?></p></div><p nr="<?php echo $id; ?>" id="more<?php echo $id; ?>" class="more" style="position:absolute;margin:30px 2px;color:rgba(255,255,255,0.2);cursor:pointer;display:inline-block">...citeşte</p></td> 
      </tr> 
     </table> 
     </div><!--each movie end--> 
    <?php 
} 
+0

Почему вы генерации каждого '' record' в table'. Попробуйте определить '

' и '
' из цикла while. Вы должны генерировать только значения '' внутри цикла while. – Ranjith

+0

потому что я хочу п «

» и внутри этих п дивы я хочу каждый иметь
southpaw93

+1

@ Ранджит, что не сделал запрос гораздо быстрее, я думаю – Shin

ответ

2

Использование JSON, чтобы ускорить подключение вашего Ajax скрипта между ним и сервером.