29. september 2004 - 10:15Der er
9 kommentarer og 1 løsning
Vise titel i stedet for filnavn
Hej! Jeg skal til at lave en funktion der viser filnavnet i en bestemt mappe, det er rimelig simpelt, men i stedet vil jeg gerne have, at den viser indholdet af <title> </title> fra hver fil sammen med filnavnet.
Men hvis man be'r PHP om at loope gennem alle filer hver gang man kalder menuen for at finde titlen - er det ikke noget der tager lang tid?
Er der nogen der har eksempler på, hvordan man gør? (scriptet skal fortrinsvist bruges på sider med 5-20 links)
... giver en væsentlig performance-forbedring. Det er helt elementær kodeskik i alle sprog, at man konkatenerer en streng-buffer (eller en array-buffer, der joines til slut) og skriver ud ét sted ;o)
olebole: Okay, tak for info ;o) Kender du nogle gode bøger omkring kodeoptimering osv.? jeg synes tit det er noget, som der skøjtes let hen over, i de forskellige grundbøger omkring programmering. (.. måske fordi det netop er grundbøger)
Ooooops .... under oprydning i gamle mails, fandt jeg denne. Undskyld, jeg ikke svarede :)
Selvom du nok har fundet ud af det, så er udskrivning i en løkke langsommeligt - og det er det i alle sprog. Da det er selv udskrivningen til skærmen, der er langsom, nøjes man derfor med at udskrive én gang.
Normalt vil man samle en streng-buffer, som jeg gjorde i eksemplet med '$s'. I JavaScript er det dog endnu hurtigere at samle et array, som join'es tilsidst:
var a = new Array(); for ( i=0; i<1000; i++ ) { a[a.length] = "Et tal: " + i; } document.write( a.join("\n") );
... eller det samme på en lidt mere elegant måde:
var a = new Array(); for ( i=0; i<1000; i++ ) { a.push("Et tal: " + i); } document.write( a.join("\n") );
Funktionen 'join()' svarer til PHP's 'implode()'. Den samler alle array'ets elementer med et tegn imellem dem.
I JS er denne metode endnu hurtigere end streng-bufferen - og du kan nemt komme op på en hastighedsforøgelse på flere hundrede gange (NB: Flere hundrede _gange_ ... ikke kun flere hundrede procent!). Det er jo altid værd at tage med ;o) /mvh
Synes godt om
Ny brugerNybegynder
Din løsning...
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.