2013-04-10 18 views
5

Mam zbudowany post ajax i wysyłam dane do innego pliku php za jego pośrednictwem, w końcu robię live search ... ale chodzi o to, że jest trochę powolny, kiedy wpisuję coś wewnątrz box, ajax zajmuje od 1-2 sekund do strzału ... Chcę, żeby wyszukiwanie było jak wyszukiwanie youtube lub wyszukiwanie facebookowe, bardzo szybko, kiedy coś wpiszesz od razu pokazuje sugestie ... wszelkie pomysły jak mogę naprawić to?Jquery ajax jest powolny

Oto kod:

$("#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(); 
       } 
    }); 

i 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

Dlaczego generowania każdy 'record' do' table'. Spróbuj zdefiniować ''

'i'
'poza' pętlą while'. Musisz wygenerować tylko wartości '' wewnątrz 'pętli'. – Ranjith

+0

bo chcę n „

”, a wewnątrz tych n div chcę każdy mieć
southpaw93

+1

@ Ranjitha, że ​​nie złożył wniosku o wiele szybciej, myślę – Shin

Odpowiedz

2

użycie JSON, aby przyspieszyć połączenie Twojego skryptu Ajax między nim a serwerem.