2013-04-10 22 views
5

Ich habe eine Ajax-Post gebaut und ich sende einige Daten zu einer anderen PHP-Datei durch, schließlich eine Live-Suche ... aber die Sache ist, dass es ein bisschen langsam ist, wenn ich etwas in die Box, die Ajax braucht zwischen 1-2 Sekunden zu schießen .... Ich möchte die Suche wie youtube Suche oder Facebook-Suche, sehr schnell, wenn ich etwas dort tippen, zeigt es sofort Vorschläge ... irgendwelche Ideen, wie kann ich beheben Dies ? HierJquery Ajax ist langsam

ist der Code:

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

und 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

Warum Sie sich 'Record' in' table' zu ​​erzeugen. Versuchen Sie, die '

' und '
' aus der' while-Schleife' zu ​​definieren. Sie müssen nur die '' Werte in der' while-Schleife' generieren. – Ranjith

+0

weil ich n „

“ wollen und innerhalb dieser n divs ich jeweils ein
southpaw93

+1

@ Ranjith haben wollen, werden feststellen, dass die Anforderung nicht viel schneller gemacht, denke ich – Shin

Antwort

2

Verwenden JSON zu beschleunigen Ihren Ajax-Skript der Verbindung zwischen ihm und dem Server.