---
title: "Optimera kod för snabb laddning."
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/11392-optimera-kod-för-snabb-laddning/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "brw"
published: "2001-03-05T08:11:00.000Z"
updated: "2001-08-30T16:50:00.000Z"
replies: 42
views: 512
page: 2
pages: 3
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/11392-optimera-kod-för-snabb-laddning"
---

# Optimera kod för snabb laddning.

_Sida 2 av 3._

## #21 — Herman, 2001-08-14T08:55Z

Anledningen till att din sida blir seg beror på att du loopar skapandet av recordset:s. Det är närmast en dödssynd!

Fel på lite \<% %\> osv. är normalt inget problem.

Permalänk: https://www.webforum.nu/p/285293

## #22 — brw, 2001-08-14T08:58Z

Vad har du för förslag istället då?

Permalänk: https://www.webforum.nu/p/285294

## #23 — Herman, 2001-08-14T11:22Z

Jag har inte mer än ögnat på din kod, men det ser ut som du skulle kunna lösa det hela med en join och lite logik i ASP-koden.

Permalänk: https://www.webforum.nu/p/285295

## #24 — spango, 2001-08-14T11:51Z

Toonster, vad yrar du om? ;) 

> Ska man skriva ett Javascript med response.write blir det problem, eftersom man i Javascript har ' och inte ", då kan man ha "" som blir ' i den genererade koden.

Jag vet att du vet hur C-liknande syntax funkar, men så här gör man förstås:

```
Response.Write('Det går att använda \'enkelfnuttar\'... ');
Response.Write("... och \"dubbelfnuttar\" utan problem.");
```

Permalänk: https://www.webforum.nu/p/285296

## #25 — brw, 2001-08-14T18:46Z

Herman.. du skulle inte kunna bistå med ett förslag på en JOIN och som du kallar det logik? så får man se på lite alternativ.. :)

Permalänk: https://www.webforum.nu/p/285297

## #26 — Herman, 2001-08-14T19:37Z

Som jag förstår det räcker det typ att join:ar **menykategori.menyvalid=menyval.id**
och sorterar efter **menyval.ordning**.

Sedan i ASP koden **If**:ar du om fälten från menykategori ska skrivas ut eller inte.

Permalänk: https://www.webforum.nu/p/285298

## #27 — brw, 2001-08-15T07:45Z

Hehe okej!

Jag har sökt runt lite här och det jag kan konstatera är att det lär bli en rejäl prestandaförbättring med att använda join.

Jag har aldrig använt join utan enbart kört med loopar i loopar \* :r skämms \*

Så jag pastar in min kod lite förkortad här så kanske nån kan visa hur det skulle kunna se ut om jag använder join.

```
<%
Dim SQLmenyval, rsmv, dl, mvurl, SQLmenylank, RSml

SQLmenyval = "Select id, title, menyval, dl, url, target FROM menyval WHERE menyid = 26 ORDER BY ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

Do until RSmv.EOF
valid = RSmv("id")
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
%>

<%=mvurl%>

<%
SQLmenylank = "Select url, menykategori FROM menykategori WHERE menyvalid = "& valid &" ORDER BY ordning ASC"
Set RSml = Connection.Execute(SQLmenylank)

Do until RSml.EOF
url = RSml("url")
menykategori = RSml("menykategori")
%>

<%=menykategori%>

<%
RSml.Movenext
Loop
RSml.Close
Set RSml = Nothing
%>

<% 
RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
Connection.Close
Set connection = Nothing
%>
```

Permalänk: https://www.webforum.nu/p/285299

## #28 — PatrikB, 2001-08-15T09:38Z

Något sådant:

```
<%
Dim SQLmenyval, rsmv, dl, mvurl, SQLmenylank, intLastMVID

SQLmeny = "Select menyval.id as mvid, menyval.title, menyval. menyval, menyval.dl, menyval.url as mvurl, menyval.target, " & _
	"menykategori.url as mkurl, menykategori.menykategori " & _
	"FROM menyval, menykategori " & _
	"WHERE (menyval.id = menykategori.menyvalid) AND menyval.menyid = 26 ORDER BY ordning ASC"

Set RSmv = Connection.Execute(SQLmeny)

Do until RSmv.EOF
	valid = RSmv("mvid")
	menyval = RSmv("menyval")
	dl = RSmv("dl")
	mvurl = RSmv("mvurl")

	If intLastMVID <> valid Then
		Response.Write mvurl
	End If

	url = RSml("mkurl")
	menykategori = RSml("menykategori")

	Response.write menykategori

	intLastMVID = valid

	RSmv.Movenext
Loop

RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
Connection.Close
Set connection = Nothing
%>
```

som sagt ... e otestad kod ...

cya,
PatrikB

Permalänk: https://www.webforum.nu/p/285300

## #29 — OveRRidE, 2001-08-15T10:14Z

En fråga bara.. 

```
[b]([/b]menyval.id = menykategori.menyvalid[b])[/b] AND menyval.menyid = 26 ORDER BY ordning ASC"
menyval.id = menykategori.menyvalid
```

 

vad gör paranteserna för nytta där? :q

Permalänk: https://www.webforum.nu/p/285301

## #30 — Herman, 2001-08-15T10:58Z

Ingen mer nytta än att kanske öka läsbarheten för ett långt uttryck.

Permalänk: https://www.webforum.nu/p/285302

## #31 — brw, 2001-08-27T11:59Z

Jag får fan inte till det..
 
Med den kod jag fick så skriver den bara ut en undermeny.. det kan ju i princip vara hur många som helst.. och sen skriver den bara ut de som har undermeny.. om det finns en länk som inte har undermeny så kommer den inte med.

Exemel på hur den skriver ut:

Produkter 
 \- Kaninfoder

Kontakta oss
 \- Mailformulär

Det kan ju vara 

Produkter 
 \- Kaninfoder
 \- Hundmat
 \- Leksaker

Kontakta oss
 \- Mailformulär
 \- Telefon

Sök (utan undermeny)

Har nån lust att hjälpa mig få till koden nedan med innerjoin så att sidan laddar snabbare?

Såhär ser min kod ut när den fungerar och inte använder innerjoin:

```
<script language="JavaScript">
var myNavBar = new NavBar(780);
myNavBar.setSizes(0, 2, 0);
var tempMenu;
myNavBar.setColors("#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#000000", "#CCCCCC");
myNavBar.setFonts("Verdana, Arial, Geneva", "plain", "normal", "10px", "Verdana, Arial, Geneva", "plain", "normal", "10px");
myNavBar.setAlign("left");
				  

<%
Dim SQLmenyval, rsmv, dl, mvurl, SQLmenylank, RSml

SQLmenyval = "Select id, title, menyval, dl, url, target FROM menyval WHERE menyid = 26 ORDER BY ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

Do until RSmv.EOF
valid = RSmv("id")
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
%>

tempMenu = new NavBarMenu(0, 140);

<% If dl = "j" Then %>
tempMenu.addItem(new NavBarMenuItem('&nbsp;<%=menyval%>&nbsp;', "<%=mvurl%>"));

<% Else %>

tempMenu.addItem(new NavBarMenuItem('&nbsp;<%=menyval%>&nbsp;', "#"));

<% End If %>

<%
SQLmenylank = "Select url, menykategori FROM menykategori WHERE menyvalid = "& valid &" ORDER BY ordning ASC"
Set RSml = Connection.Execute(SQLmenylank)

Do until RSml.EOF
url = RSml("url")
menykategori = RSml("menykategori")
%>

tempMenu.addItem(new NavBarMenuItem('&nbsp;<%=menykategori%>', "<%=url%>"));

<%
RSml.Movenext
Loop
RSml.Close
Set RSml = Nothing
%>

myNavBar.addMenu(tempMenu);

<% 
RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
%>

function init() {
  myNavBar.create();
}
</script>
```

Permalänk: https://www.webforum.nu/p/285303

## #32 — LarsG, 2001-08-27T16:46Z

```
<script language="JavaScript">
var myNavBar = new NavBar(780);
myNavBar.setSizes(0, 2, 0);
var tempMenu;
myNavBar.setColors("#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#000000", "#CCCCCC");
myNavBar.setFonts("Verdana, Arial, Geneva", "plain", "normal", "10px", "Verdana, Arial, Geneva", "plain", "normal", "10px");
myNavBar.setAlign("left");

<%
Dim SQLmenyval, rsmv, dl, mvurl,mkurl,oldid,menykategori

SQLmenyval = "Select m.id,m.title, m.menyval, m.dl, m.url, " & _
" m.target, mk.url as mkurl, mk.menykategori " &_
" FROM menyval as m left join  menykategori as mk on m.id = mk.menyvalid " &_
" WHERE m.menyid = 26 " & _
" ORDER BY m.ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
valid = RSmv("id")
if  clng(oldid) <> clng(valid) then
    menyval = RSmv("menyval")
    dl = RSmv("dl")
    mvurl = RSmv("url")
    oldid = valid
%>
tempMenu = new NavBarMenu(0, 140);

<%If dl = "j" Then %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "<%=mvurl%>"));

<% Else %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "#"));

<% End If 

End if %>

mkurl = RSmw("mkurl")
menykategori = RSmw("menykategori")
if not isnull(mkurl) then
%>

tempMenu.addItem(new NavBarMenuItem(' <%=menykategori%>', "<%=mkurl%>"));

myNavBar.addMenu(tempMenu);

<% 
end if
RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
%>

function init() {
myNavBar.create();
}
</script>
```

Permalänk: https://www.webforum.nu/p/285304

## #33 — brw, 2001-08-28T07:45Z

Tackar lasseG..  :)

det fungerar nästan som jag vill ha det.. men det är fan klurigt det här med join så jag skulle behöva lite hjälp att finjustera det sista.

Med följande kod

```
<script language="JavaScript">
var myNavBar = new NavBar(780);
myNavBar.setSizes(0, 2, 0);
var tempMenu;
myNavBar.setColors("#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#000000", "#CCCCCC");
myNavBar.setFonts("Verdana, Arial, Geneva", "plain", "normal", "10px", "Verdana, Arial, Geneva", "plain", "normal", "10px");
myNavBar.setAlign("left");

<%
Dim SQLmenyval, rsmv, dl, mvurl,mkurl,oldid,menykategori

SQLmenyval = "Select m.id,m.title, m.menyval, m.dl, m.url, " & _
" m.target, mk.url as mkurl, mk.menykategori " &_
" FROM menyval as m left join menykategori as mk on m.id = mk.menyvalid " &_
" WHERE m.menyid = 26 " & _
" ORDER BY m.ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
valid = RSmv("id")
if clng(oldid) <> clng(valid) then
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
oldid = valid
%>
tempMenu = new NavBarMenu(0, 140);

<%If dl = "j" Then %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "<%=mvurl%>"));

myNavBar.addMenu(tempMenu);
<% Else %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "#"));

<% 
End If 
End if 
%>

<%
mkurl = RSmv("mkurl")
menykategori = RSmv("menykategori")
if not isnull(menykategori) then
%>
tempMenu.addItem(new NavBarMenuItem(' <%=menykategori%>', "<%=mkurl%>"));
<% End If %>

myNavBar.addMenu(tempMenu);

<%
RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
%>

function init() {
myNavBar.create();
}
</script>
```

så skriver den ut posterna såhär:

```
Om det är direktlänk så ska den skriva ut följande 3 rader:

tempMenu = new NavBarMenu(0, 140);
tempMenu.addItem(new NavBarMenuItem(' Startsida ', "default.asp"));
myNavBar.addMenu(tempMenu);

Ovanstående är rätt.. men när den skriver ut en meny som har underkategorier dvs.. att det direktlänk = "n" så skriver den såhär:

tempMenu = new NavBarMenu(0, 140);
tempMenu.addItem(new NavBarMenuItem(' Fakta ', "#"));
tempMenu.addItem(new NavBarMenuItem(' Utbildning', ""));
myNavBar.addMenu(tempMenu);
tempMenu.addItem(new NavBarMenuItem(' Historia', ""));
myNavBar.addMenu(tempMenu);
tempMenu.addItem(new NavBarMenuItem(' Personal', ""));
myNavBar.addMenu(tempMenu);

Såhär ska det se ut: (det är alltså en ny post i menyval.. den första som heter startsida var direktlänk = "j" och sen kommer nästa post som är Fakta som har direktlänk = "n" och den har undermeny med utbildning, historia mm som menyval.. då ska den ju loopa fram alla som är i undermenyn fast utan den där myNavBar.addMenu(tempMenu) efter varje rad.. det ska den göra när den är klar.. när det inte finns några fler i den undermenyn...):

tempMenu = new NavBarMenu(0, 140);
tempMenu.addItem(new NavBarMenuItem(' Fakta ', "#"));
tempMenu.addItem(new NavBarMenuItem(' Utbildning', ""));
tempMenu.addItem(new NavBarMenuItem(' Historia', ""));
tempMenu.addItem(new NavBarMenuItem(' Personal', ""));
myNavBar.addMenu(tempMenu);
```

Kan du hjälpa mig få de att fungera så vore det bussigt.

Permalänk: https://www.webforum.nu/p/285305

## #34 — LarsG, 2001-08-28T09:28Z

Jodå, jag kan titta på det i kväll.

Permalänk: https://www.webforum.nu/p/285306

## #35 — LarsG, 2001-08-28T20:23Z

Så, nu är det kväll.

```
<script language="JavaScript">
var myNavBar = new NavBar(780);
myNavBar.setSizes(0, 2, 0);
var tempMenu;
myNavBar.setColors("#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#000000", "#CCCCCC");
myNavBar.setFonts("Verdana, Arial, Geneva", "plain", "normal", "10px", "Verdana, Arial, Geneva", "plain", "normal", "10px");
myNavBar.setAlign("left");
<%
Dim SQLmenyval, rsmv, dl, mvurl,mkurl,oldid,menykategori

SQLmenyval = "Select m.id,m.title, m.menyval, m.dl, m.url, " & _
" m.target, mk.url as mkurl, mk.menykategori " &_
" FROM menyval as m left join menykategori as mk on m.id = mk.menyvalid " &_
" WHERE m.menyid = 26 " & _
" ORDER BY m.ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
valid = RSmv("id")
if clng(oldid) <> clng(valid) then
   if  cint(oldid) <> 0 then
%>
       myNavBar.addMenu(tempMenu); 
<%
   end if
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
oldid = valid
%>
tempMenu = new NavBarMenu(0, 140);

<%If dl = "j" Then %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "<%=mvurl%>"));

<% Else %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "#"));

<% 
End If 
End if 
%>

<%
mkurl = RSmv("mkurl")
menykategori = RSmv("menykategori")
if not isnull(menykategori) then
%>
tempMenu.addItem(new NavBarMenuItem(' <%=menykategori%>', "<%=mkurl%>"));
<% End If %>

<%
RSmv.Movenext
Loop
RSmv.Close
Set RSmv = Nothing
%>

function init() {
myNavBar.create();
}
</script>
```

Så, hoppas det blir bättre, har dock ingen möjlighet att testa.

Permalänk: https://www.webforum.nu/p/285307

## #36 — brw, 2001-08-29T05:56Z

Tackar Lasse... nu fungerar det skitbra!

Men en fråga.. jag vill sortera menykategori efter ORDER BY ordning ASC .. vad ska jag lägga till?

Den visar dem lite hur som helst.. men huvudvalen blir rätt.. 

Förresten.. känner du till nån "ASP kurs" typ Wides eller någon annans som går igenom join mm? så man kan lära sig verkar ju fan bra krångligt ;)

Permalänk: https://www.webforum.nu/p/285308

## #37 — brw, 2001-08-29T06:07Z

Hehe glöm ovanstående.. jag löste det

:)

```
" ORDER BY m.ordning, mk.ordning ASC"
```

Permalänk: https://www.webforum.nu/p/285309

## #38 — LarsG, 2001-08-29T06:50Z

Jaså, du har inte problem med att sista menyn inte kommer ut ordentligt?

```
<script language="JavaScript">
var myNavBar = new NavBar(780);
myNavBar.setSizes(0, 2, 0);
var tempMenu;
myNavBar.setColors("#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#ffffff", "#000000", "#000000", "#CCCCCC");
myNavBar.setFonts("Verdana, Arial, Geneva", "plain", "normal", "10px", "Verdana, Arial, Geneva", "plain", "normal", "10px");
myNavBar.setAlign("left");
<%
Dim SQLmenyval, rsmv, dl, mvurl,mkurl,oldid,menykategori
SQLmenyval = "Select m.id,m.title, m.menyval, m.dl, m.url, " & _
" m.target, mk.url as mkurl, mk.menykategori " &_
" FROM menyval as m left join menykategori as mk on m.id = mk.menyvalid " &_
" WHERE m.menyid = 26 " & _
" ORDER BY m.ordning ASC"
Set RSmv = Connection.Execute(SQLmenyval)

oldid = 0
Do until RSmv.EOF
valid = RSmv("id")
if clng(oldid) <> clng(valid) then
if cint(oldid) <> 0 then
%>
myNavBar.addMenu(tempMenu); 
<%
end if
menyval = RSmv("menyval")
dl = RSmv("dl")
mvurl = RSmv("url")
oldid = valid
%>
tempMenu = new NavBarMenu(0, 140);

<%If dl = "j" Then %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "<%=mvurl%>"));

<% Else %>

tempMenu.addItem(new NavBarMenuItem(' <%=menyval%> ', "#"));

<% 
End If 
End if 
%>

<%
mkurl = RSmv("mkurl")
menykategori = RSmv("menykategori")
if not isnull(menykategori) then
%>
tempMenu.addItem(new NavBarMenuItem(' <%=menykategori%>', "<%=mkurl%>"));
<% End If %>

<%
RSmv.Movenext
Loop
[b] if oldid <> 0 then
%>
myNavBar.addMenu(tempMenu); 
<%
[/b]
RSmv.Close
Set RSmv = Nothing
%>

function init() {
myNavBar.create();
}
</script>
```

Tycker att det med fetstil borde vara med.

Permalänk: https://www.webforum.nu/p/285310

## #39 — brw, 2001-08-29T07:57Z

hehe ;) helt missat den sista.. allt såg jävligt bra ut men du har rätt.. den sista fanns inte med.. men nu har jag fixat till det. 

Tack ska du ha!

Permalänk: https://www.webforum.nu/p/285311

## #40 — brw, 2001-08-29T19:34Z

Hmm.. det fungerar bra på jobbet där jag har SQLserver.. men jag tänkte använda det lite hemma också.. men då får jag felet: "kopplingsuttrycket stöds inte" 

hur ska jag få till det? vad behöver jag ändra?

red: Jag kör Access 2000 hemma

Permalänk: https://www.webforum.nu/p/285312

---

Tråden på webben: https://www.webforum.nu/amne/asp/11392-optimera-kod-för-snabb-laddning/page2  
Föregående sida: https://www.webforum.nu/amne/asp/11392-optimera-kod-för-snabb-laddning.md  
Nästa sida: https://www.webforum.nu/amne/asp/11392-optimera-kod-för-snabb-laddning/page3.md
