25. februar 2007 - 20:41Der er
30 kommentarer og 1 løsning
Optimering af javascript/ajax fil
Jeg skal have optimeret en fil, jeg har selv forsøgt mig ud i det, men har ikke forstand på hverken javascript eller ajax så jeg søger lidt hjælp fra mere erfarne folk :-)
Koden skal optimeres så den bliver bedre på så mange måder som muligt. Især hastigheden skal være i top. Selve filen er på 52 linier, så er den enkel og opstillet på en fin måde. Med andre ord er den ligetil.
hæ hæ Især hastigheden.. øhh det bliver jo liget svært.. køb dig en større Internetforbindelse.. og nu ved jeg ikke om Frac har limit på deres linje men så er der jo ikke meget at gøre..
Det virker skam lynhurtigt hos mig, men når databasen kommer til at indeholde 50.000 poster og der bliver søgt realtime kan det godt virke langsomt hos folk med dårlig internetforbindelse. Derfor vil jeg gerne optimere koden.
Jeg fik at vide af roenving herinde fra at min kode var outdated og ikke særlig klogt opbygget. Det er dog heller ikke mig selv som har lavet den, såeh :-)
search.php er en fil som søger i databasen efter et ord som man skriver, selve databasen kommer som sagt til at indeholde ca. 50.000 poster muligvis mere. Jeg har styr på selve php delen og den kan jeg sagtens selv optimere.
Sig til hvis du vil se php delen, det skal lige siges at jeg ikke har optimeret den endnu!
Jo, men som sagt realtime. Dvs hver gang man skriver eller sletter et bogstav søger den automatisk. Der er ingen submit knap jo. Derfor skal den samtidigt søge alle poster igennem.
Men i bund og grund skal koden modificeres så den bliver mere up-to-date. Det er jo slamkode :-)
Hmm, den kan vidst ikke optimeres meget. Jeg ser de har brugt strlen i php og LEFT i mysql til at kombinere en løsning som kun søger efter ting der fylder det antal initialer som man har indtastet. Det kan jeg dog ikke i mit tilfælde.
Men måske har jeg udtrykt mig forkert. Min javascript/ajax kode skal renskrives så den bliver mere moderne. Det er ikke flot/god gode som er skrevet.
Hmm, har gjort det, men hvad skulle det hjælpe når jeg alligevel skal bruge alle? :-)
Har du andre tilføjelser, evt. til min javascript fil? Eller nogle små ændringer du ville foretage? Måske jeg evt. kunne få fjernet innerHTML og bruge noget andet...
med hensyn til hvorfor jeg bruger LOWER så gør jeg det jo fordi at alle bogstaver i mine felter skal laves om til små bogstaver så søgningen ikke bliver case-sensitive.
SELECT id, overskrift, MATCH(overskrift, indhold) AGAINST ('".$q."' IN BOOLEAN MODE) AS Score FROM artikler HAVING Score ORDER BY Score DESC LIMIT 0,10;
Nej det er jo ikke Javascript (ALAX) som søger for Dig.. Det er jo din SQL Server.. og det er her det er en god ide at fortælle den hvad den skal gøre, så den ikke laver mere end Du har brug for.
På samme måde som hvis jeg siger du skal købe mælk og sukker.. så skal du jo ikke komme med mælk, sukker, kaffe, kage og meget mere. det vil jo tage længer tid når du skal købe alt muligt andet.. :D
Hehe, det er nu rigtig nok, men det er nu stadig AJAX delen som laver en forbindelse imellem HTML dokumentet og PHP dokumentet såeh den forbindelse har stadig er stor betydning for hastigheden som helhed hvis du forstår. :-)
Ja det kan jeg egentlig godt se nu. Javascript og AJAX kører jo client-side så det afhænger af internetforbindelsens hastighed. Så fik vi da det på plads :-)
Hmm, med hensyn til min query så har jeg egentlig meget godt styr på MySQL og PHP, men ikke særlig meget om hvad der er hurtigst så et par små fif ville være lækkert.
Jeg har lavet en funktion der viser hvor mange resultater der er fundet og hvor mange der findes i databasen. Til det har jeg lavet to query's men kan det gøres på en klogere måde?
Min kode for den funktion ser således ud:
$query1 = mysql_query("SELECT id FROM artikler")or die(mysql_error()); $query2 = mysql_query("SELECT overskrift, indhold FROM artikler WHERE LOWER(overskrift) LIKE '%".$q."%' OR LOWER(indhold) LIKE '%".$q."%' ORDER BY id ASC")or die(mysql_error()); $ialt = mysql_num_rows($query1); $antal = mysql_num_rows($query2);
Derudover vil jeg bede dig om at smide et svar så du kan få point.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.