2013-04-10 21 views
5

Ho creato un post ajax e sto inviando alcuni dati a un altro file php attraverso di esso, finalmente facendo una ricerca dal vivo ... ma il fatto è che è un po 'lento, quando scrivo qualcosa all'interno del box, l'ajax impiega tra 1 o 2 secondi per sparare .... Voglio che la ricerca sia come la ricerca di youtube o la ricerca di facebook, molto veloce, quando scrivo qualcosa lì mostra immediatamente suggerimenti ... qualsiasi idea come posso risolvere Questo ?Jquery ajax è lento

Ecco il codice:

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

e 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

Perché la generazione di ogni 'record' in' table'. Prova a definire il '

' e '
' dal 'while loop'. È necessario generare solo i valori '' all'interno del ciclo while. – Ranjith

+0

perché voglio n "

" e all'interno di questi n div voglio che ciascuno di avere un
southpaw93

+1

@ Ranjith, Che non sarà fatta la richiesta molto più veloce, penso – Shin

risposta

2

Usa JSON per accelerare la connessione del vostro script Ajax tra esso e il server.