2014-09-19 1 views
0

, поэтому я пытаюсь ограничить количество результатов поиска, которые появляются при использовании ajax livesearch, и я не добился успеха. На данный момент результаты бесконечны, и файлы, которые используются, - это изображения 6-10mb, которые засасывают массу памяти и значительно замедляют поиск. Я думаю, что ключевым моментом является ограничение параметров поиска (возможно, 10 или 15 изображений) на этом этапе. Если кто-нибудь покажет мне, как это сделать, я буду благодарен. Thx, любые конструктивные критические замечания также приветствуются, если ограничение поиска - не единственный способ улучшить скорость и производительность, я бы, конечно, хотел бы услышать это. ThxОграничить результаты поиска для ajax livesearch images folder

function showResult(str) { 
    if (str.length==0) { 
    document.getElementById("home").innerHTML=""; 
    document.getElementById("home").style.border="0px"; 
    return; 
    } 
    if (window.XMLHttpRequest) { 
    // code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } else { // code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
     document.getElementById("home").innerHTML=xmlhttp.responseText; 
     document.getElementById("home").style.border="1px solid #A5ACB2"; 
    } 
    } 
    xmlhttp.open("GET","home.php?q="+str,true); 
    xmlhttp.send(); 
} 

Я сделал некоторые исследования и нашел этот код на стеке, которые могут быть фикс для меня, но я не знаю, как реализовать это правильно, каждый раз, когда я стараюсь это не работает:

$("#home").autocomplete({ 
    source: function(request, response) { 
     var results = $.ui.autocomplete.filter(request.term); 

     response(results.slice(0, 10)); 
    } 
}); 

Вот мой home.php код:

<?php 
$xmlDoc=new DOMDocument(); 
$xmlDoc->load("data.xml"); 

$x=$xmlDoc->getElementsByTagName('image'); //used to be link, now image, could be images 

//get the q parameter from URL 
$q=$_GET["q"]; 


if (strlen($q)>0) { 
    $hint=""; 
    for($i=0; $i<($x->length); $i++) { 

    $y=$x->item($i)->getElementsByTagName('path'); 
    $z=$x->item($i)->getElementsByTagName('thumbnail'); 
    $w=$x->item($i)->getElementsByTagName('image'); 
    if ($y->item(0)->nodeType==1) { 
     //find a link matching the search text 
     if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) { 
     if ($hint=="") { 
      $hint="<a style='font: bold 16px/22px Georgia, serif;' href=' 
      ".$y->item(0)->childNodes->item(0)->nodeValue."' target='_blank'> 
      ".$y->item(0)->childNodes->item(0)->nodeValue." 
      ".$z->item(0)->childNodes->item(0)->nodeValue." <br><br><br> 
     "; 
     } 
     else 
     { 
     $hint=$hint ."<a style='font: bold 16px/22px Georgia, serif;' href=' 
     ".$y->item(0)->childNodes->item(0)->nodeValue."' target='_blank'> 
     ".$y->item(0)->childNodes->item(0)->nodeValue." 
     ".$z->item(0)->childNodes->item(0)->nodeValue." <br><br><br> 
     "; 
     } 
     } 
    } 
    } 
} 


if ($hint=="") { 
    $response="Search found ' 0 ' matches"; 
} else { 
    $response=$hint; 
} 

echo $response; 
?> 

ответ

0

Для предельного результата поиска листинг только заменить эту строку в home.php

для ($ i = 0; $ i < ($ x-> length); $ Я ++)

с

для ($ I = 0; $ я < NUMBER; $ я ++)

НОМЕР является количество списка, который вы хотите показать.

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