webForumDet fria alternativet

Hur viktigt är DIM?

ASP

19 svar · 438 visningar · startad av mjonson

Medlem sedan nov. 200233 inlägg
Frågan#1

Hej,
jag läste någonstans att det är viktigt att dimma alla sina variabler innan man tilldelar dem ett värde. (DIM)

Nu är det så att jag har en .inc fil som innehåller inte mindre än 300 asp variabler. Och nästan ingen annan kod. Sidan är c:a 600 rader lång. Om jag ska dimma alla variabler innan jag initierar dem blir sidan 1200 rader lång.

Varför ska man dimma variabler egentligen? Kommer det gå snabbare?

Finna det tllfällen när man ska dimma och inte dimma?

Medlem sedan nov. 20017 144 inlägg
#2

Ja, det går snabbare. Min sida (normalstor) tar tre sekunder utan dim att ladda och 1,5 med. Det kan tyckas lite men om sidan kommer upp i storlek så gör det skillnad. Det går ju att mäta också, (med timer) det har gjorts lite sådana försök här på Wf också. Du kan ju dimma så här:
Din var1, var2, var3 osv...
I stället för
Dim var1
Dim var2
Dim var3

Medlem sedan nov. 200233 inlägg
#3

Ok, jag tror jag tar mig an arbetet att ändra. Den känns lite seg utan dim. Hoppas det blir bättre utan.

Medlem sedan nov. 20017 144 inlägg
#4

För skoj skull kan du ju sätta in en timer och återkomma med resultatet.

Sätt in detta högst upp på sidan: 

iStart = Timer 

och detta längst ner: 

Response.Write "Det tog " & FormatNumber(Timer - iStart, 6, True) & " sekunder att ladda sidan"
Medlem sedan apr. 20022 743 inlägg
#5

jag dimmar alltid mina sidor men en fråga jag ställt mig är;

är det någon skillnad på att dimma så här:
Dim var1, var2, var3

eller så här:
Dim var1
Dim var2
Dim var3

Är någon metod snabbare eller går det lika ut?

Medlem sedan nov. 200233 inlägg
#6

Funkar inte

Jag la in timer koden, men den verkar skum...
Det är nog cachet som spökar.

Medlem sedan maj 2002560 inlägg
#7

Poffe skrev:

jag dimmar alltid mina sidor men en fråga jag ställt mig är;

är det någon skillnad på att dimma så här:
Dim var1, var2, var3

eller så här:
Dim var1
Dim var2
Dim var3

Är någon metod snabbare eller går det lika ut?

Well, du skriver ju inte ut "Dim" fler än en gång med det första alternativet. Det sparar ju några tecken kod som skall exekveras.

Medlem sedan feb. 200112 078 inlägg
#8

LR^evil.sid skrev:

Poffe skrev:

jag dimmar alltid mina sidor men en fråga jag ställt mig är;

är det någon skillnad på att dimma så här:
Dim var1, var2, var3

eller så här:
Dim var1
Dim var2
Dim var3

Är någon metod snabbare eller går det lika ut?

Well, du skriver ju inte ut "Dim" fler än en gång med det första alternativet. Det sparar ju några tecken kod som skall exekveras.

Jag tror den skillnaden är marginell.

Jag brukar dim:a en variebel på en rad, då kan man aven skriva 'as integer eller liknande efter, för att lättare hålla reda på datatyper.

Medlem sedan aug. 20012 349 inlägg
#9

för att hålla reda på datatyper är det nog enklare att benämna variablerna med notation innan ex:
strMyName 'string
intMyAge 'integer
rsAllPersons 'recordset
objMyThingie ' object
blnSingel 'boolean
lngStatsskulden ' long

osv osv...

Medlem sedan feb. 200112 078 inlägg
#10

mrblonde, givetvis skall variablarna döpas fint, såsom du skrev. Jag gör exakt så också. Genom att använda en kommentar efter, så får man även koden ett steg närmare VB.

Medlem sedan nov. 2002105 inlägg
#11

Då man bör använda OPTION EXPLICIT i sina sidor så måste du deklarera dina variabler med Dim.

Sen kan man ju fundera på om man vill ha en include fil med 300 variabler. Behöver du ha alla variabler i samma fil? Går det att bryta ut dem?

Medlem sedan nov. 200233 inlägg
#12

Språkval mm.

Hur använder jag "OPTION EXPLICIT " menar du? Är det något jag måste ange? Vad innebär det isåfall?

Filen med 300 variabler: Varje variabel är ett ord, fras eller teststycke som infogas in i HTML koden på sidan beroende på vilket språk som besökaren valt. I filen finns en Select Case sats som väljer till vilket värde variablerna ska instansieras till. På så vis sätts variablerna till det språk som användaren valt.

Jag har alltså med en include fil lyckats skilt utseende och innehåll åt.

Jag skulle kanske lösa detta med XML. Min lösning känns omsmidig, men verkar ändå vedertagen.

Har någon ergfarenhet av en smartare lösning?

Medlem sedan feb. 200112 078 inlägg
#13

Option explicit skriver du längst upp i ASP-filen, för att tvinga alla variablar som används att dim:as. På så sätt får du en snabbare sida, och lättare att felsöka eftersom felaktiga variabelnamn inte längre förekommer.

option.explicit

'all annan kod
Medlem sedan nov. 200233 inlägg
#14

Låter bra

Jag ska gå igenom min kod och tvinga alla variabler att dimmas. Tack för tipset!

Medlem sedan feb. 20001 590 inlägg
#15

300 variabler? I det fallet kan säkert någon/några komponenter vara på plats, för att strukturera upp systemet bättre...
(bara en tanke)

Medlem sedan aug. 20003 575 inlägg
#16

300 Variabler det måste vara en stor sida.

Medlem sedan nov. 20017 144 inlägg
#17

option explicit är ju för att markera ut missade variabler, men har det annars någon betydelse för laddningstiden?

Medlem sedan aug. 20012 349 inlägg
#18

Option Explicit har diskuterats flitigt mångaånger i detta forum, men man kan kort säga att om man skriver det så bryr sig inte kompilatorn om att titta efter om koden innehåller några nya variabler, den förutsättar att allt är dimmat. Därav prestanda höjning.

Skriv alltid

<%Option Explicit ' första raden i min asp sida, inget får förekomma innan.%>

<%

'start doing coding stuff
%>
Medlem sedan apr. 20022 743 inlägg
#19

mrblonde skrev:

Option Explicit har diskuterats flitigt mångaånger i detta forum, men man kan kort säga att om man skriver det så bryr sig inte kompilatorn om att titta efter om koden innehåller några nya variabler, den förutsättar att allt är dimmat. Därav prestanda höjning.

Skriv alltid

<%Option Explicit ' första raden i min asp sida, inget får förekomma innan.%>

<%

'start doing coding stuff
%>

det är väll isåfall bättre att skriva:

<%Option Explicit ' första raden i min asp sida, inget får förekomma innan.

'start doing coding stuff
%>

så man inte använder onödiga asp-taggar...

jag har alltid skrivit
<%
Option Explicit

'resten av koden..
%>

alltså på andra raden blir det.. har altid funkat så man tvivlar på att man måste ha den på första raden

Medlem sedan maj 2002560 inlägg
#20

vill bara påpeka att det får förekomma saker innan option explicit

<% @Language = VBScript %>
<%
	' till exempel
	option explixit
	dim var1, var2, var3
%>
265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
127 ms — deklarationer (db)
0 ms — hämta statistik (cache)
136 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)