Performance issue when querying a large xml file through php/ajax on Apache Server

Posted by Niall on Stack Overflow See other posts from Stack Overflow or by Niall
Published on 2010-04-28T19:26:08Z Indexed on 2010/04/28 19:37 UTC
Read the original article Hit count: 307

Filed under:
|
|
|

Hey,

I have a simple "live search" (results displayed while typing) web site. This make up is Ajax to PHP querying a pretty large XML document (10,000+ lines). This is all been hosted on a local Apache server (xamp). The scale of the xml document seems to be causing huge performance issue with results taking 10ish seconds to give the results.

I'm very new to PHP (this actually being my first play about) so there below is a snippet of code in case there is something obvious

    for($i=0; $i<($foodListXML->length); $i++){
  $type=$foodListXML->item($i)->getElementsByTagName('type');
  $foodnote=$foodListXML->item($i)->getElementsByTagName('foodnote');
  $style=$foodListXML->item($i)->getElementsByTagName('style');

  if ($type->item(0)->nodeType==1)
    {
    //find a link matching the search text
    if (stristr($type->item(0)->childNodes->item(0)->nodeValue,$q)){
     $currentFoodName = $type->item(0)->childNodes->item(0)->nodeValue;
     $currentFoodStyle = $style->item(0)->childNodes->item(0)->nodeValue;
     $currentFoodNote = $foodnote->item(0)->childNodes->item(0)->nodeValue;

      if ($hint==""){
        $hint= $currentFoodName . " , " . $currentFoodNote .  " , <b>" . $currentFoodStyle. "</b>" .   "<br>" ;
        }
      else{
        $hint=$hint . $currentFoodName . " , " . $currentFoodNote . " , <b>" . $currentFoodStyle. "</b>" .   "<br>" ;
        }

      }
    }
  }
}

Also if having the data in a DB and accessing that is faster, then I'm open to that.. All ideas really!!

Thanks.

© Stack Overflow or respective owner

Related posts about php

Related posts about AJAX