Avatar billede jgp Nybegynder
08. januar 2002 - 11:59 Der er 10 kommentarer og
1 løsning

Optimering af kode

Jeg har følgende kode, som jeg godt kunne tænke mig at få optimeret. Koden skriver linie ud til et javaScript. Håber i kan hjælpe:

Function menu(ind, t)
  set record=server.createobject(\"adodb.recordset\")
  record.open \"menu\", conn, 2, 2, 2
  record.find \"id=\'\" & ind &\"\'\"
  response.write udskriv(record(\"text\"), record(\"link\"), t) & vbcr
  If record(\"svar\") = 0 And record(\"nsvar\") = 0 Then
    n(t) = 0
  End If
  If record(\"svar\") <> 0 Then
    n(t+1) = 0
    Call menu(record(\"svar\"), t + 1)
  End If
  If record(\"nsvar\") <> 0 Then
    n(t) = n(t) + 1
    Call menu(record(\"nsvar\"), t)
  End If
End Function

Function udskriv(text, link, t)
  For c = 0 To t-1
    str = str & \"node[\"
  Next
  str = str & \"node[0]\"
  For c = 0 To t-1
    str = str & \".child[\" & n(c) & \"]]\"
  Next
  udskriv = \"addchild(\" & str & \".nodeid,\"\"\" & text & \"\"\", \"\"\" & link & \"\"\");\"
End Function
Avatar billede jgp Nybegynder
08. januar 2002 - 12:04 #1
Okey, har fundet ud af det er hurtiger og bruge:
  SQL = \"SELECT * FROM menu WHERE id=\"&ind&\";\"
  Set record = conn.execute(SQL)
Istedet for
  set record=server.createobject(\"adodb.recordset\")
  record.open \"menu\", conn, 2, 2, 2
  record.find \"id=\'\" & ind &\"\'\"
Avatar billede cool_casper Nybegynder
08. januar 2002 - 14:27 #2
Husk at lukke spm....
Avatar billede jgp Nybegynder
08. januar 2002 - 14:51 #3
cool_casper: Jow, tak, men håbede egentlig på yderlige optimeringer
Avatar billede cool_casper Nybegynder
08. januar 2002 - 14:55 #4
response.write udskriv(record(\"text\"), record(\"link\"), t) & vbcr !?!? Der er ikke noget der hedder vbcr! Det hedder VbCrLf !

Og iøvrigt tager det lang tid når funktionerne kalder sig selv så mange gange......
Avatar billede jgp Nybegynder
08. januar 2002 - 15:30 #5
cool_casper prøv:
Response.Write \"Linie 1\" & vbcr & \"Linie 2\"

vbCr = Carriagge return only. Svarer til Chr(13)
vbLf = Line feed only. Svarer til Chr(10)
vbCrLf = Carriage return and linefeed (Newline). Svarer til Chr(13) og Chr(10)

cool_casper ideen med rekursiv programering er at det kalder sig selv. Dog er du meget velkommen til at komme med at alternativ til koden. Eller evt. en ide.
Avatar billede jgp Nybegynder
08. januar 2002 - 15:32 #6
cool_casper: jeg kan iøvrigt informere dig om at koden tager ca 3.5 sekunder ved gennemløb af knap 200 records, på en pentium 200, med 96 mb ram  kørende IIS 5.0.
Avatar billede cool_casper Nybegynder
08. januar 2002 - 15:34 #7
Bruger du den til at lave et filetree i javascript?!?
Avatar billede jgp Nybegynder
08. januar 2002 - 15:47 #8
cool_casper: Ja Asp-scriptet udskriver koden til java-scriptet, som så genererer en menu :-)
Avatar billede cool_casper Nybegynder
08. januar 2002 - 15:51 #9
Jeg har engang lavet en perfekt menu, da jeg var i praktik, men desværre har jeg smit ASP-koden væk.... Jeg kan måske finde den.....
Avatar billede jgp Nybegynder
08. januar 2002 - 16:02 #10
cool_casper: Jeg vil da gerne se din kode, men ellers er jeg nu godt tilfres med min egen kode.

Grunden til jeg stillet dette spørgsmål, er at jeg er selvlært og derfor nemt kunne have lavet en fejl, som kunne laves smartere på en anden måde.
Avatar billede jgp Nybegynder
16. januar 2002 - 16:18 #11
Nå, der dukker vist ikke flere forslag op.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester