Just nu i M3-nätverket
Jump to content

Konstanter (Const)


FiEnD

Recommended Posts

Hej igen ;)

 

Jag har aldrig tänkt på det, men det finns ju något smidigt som konstanter i tex VBScript.

 

Läste också något om att dessa är publika och inte går att ändra?

 

Därför tänkte jag att man kan deklarera dessa konstanter i början av ens hemsida, tex på default.asp eller i global.asa och sen att de konstanterna gäller över alla ASPsidor på den siten?

Eller gäller de enbart på den sidan där de skapats?

 

Tex

Const EnKonstant = 1

 

Tack på förhand.

 

Mvh Fredrik

Link to comment
Share on other sites

www.essential.se

Hej!

 

Konstanter är tillgängliga endast på den sida de skapades på. Vill du att dom ska vara tillgängliga på alla sidor bör du skapa Session-variabler eller Application-variabler, helst i global.asa.

 

Jag vet inte om det går att göra dessa till konstanter, men prova med:

const Session("konstant")=1

 

Skriv gärna här hur det gick ;-)

 

Link to comment
Share on other sites

Hej!

 

Det jag tänkte var att jag skulle slippa ifrån att lägga dem i sessionvariabler.. tex:

 

session("EnableFileUpload") = 1

 

Och sånt.

Sessionvariabler tuggar ju minne ;(

Om än inte så mkt, så är det lite iaf. Hehe. Som jag har gjort nu så har jag lagt alla variabler i en include på varje sida istället, men jag tänkte det vore smidigt om de gick att definera alla konstanter i global asa med const. Tydligen så gick inte det =)

 

 

Mvh Fredrik

 

Link to comment
Share on other sites

Sessionvariabler tuggar ju minne ;(

 

och konstanter behöver inget eller?

 

Konstanter tar också minne i anspråk, om de tar lika mycket som session-variabler vet jag inte men skulle mycket väl kunna tro det då det endast finns en variabel typ i VBScript (variant).

 

Det smartas är som du gör nu att inkludera dem i en include fil och sedan köra in den på varje sida.

 

- Magnus

-----------------------------------------------------

ju mer jag lär mig ju mer inser jag så lite jag kan

 

Link to comment
Share on other sites

Jag skulle använda Application då det är för databasen medans Session är för varje användare och multipliceras med varje användare som kommer in.

 

Konstanter är jhu fasta värden så därför borde du spara dem i Application och därmed tar de bara upp den minnesmängd som behövs.

 

Läser just ASP.NET och där står det att konstanter tar upp precis lika mycket minne som variabler o.s.v. däremot är

konstanter snabbare att hämta data ifrån.

 

Alltså sparar du ett värde i Application som sedan skall hämtas t.ex 3 ggr på en samma sida bör du på den sidan skapa en konstant och använda den för att hämta fram informationen för att få bättre prestanda.

 

Tror däremot att det inte spelar så stor roll om du inte har grymt många användare på sidan.

 

/Johan

 

Link to comment
Share on other sites

Hej!

 

Det finns olika sätt att implementera detta på. Frågan är väl snarare vilken typ av data du vill spara? Rör det sig om objekt eller enklare typ av flaggor som i ditt exempel?

 

Absolut vanligast är nog att lägga in konstanter i en include fil som du inkluderar i dina asp sidor som Magnus säger. Detta är det enda sättet att definiera konstanter på i ASP. Lägger du dem i Session eller Applikation så är de inte längre konstanter.

 

Application och Session är långsammare än konstanter deklarerade i asp sidan. Application är speciell och tillåter endast seriell access oavsett antalet sessioner.

 

Scriptmotorn initierar konstanter och deklarerade varibler när koden kompilers (använd därför alltid option explicit) till skillnad från implicit variabeldeklaration där variabler slås upp genom namn (jämför med early/late binding i COM). Har man hög last kan detta vara något att ha i åtanke.

 

/foo

 

 

Link to comment
Share on other sites

Hej!

 

Det finns olika sätt att implementera detta på. Frågan är väl snarare vilken typ av data du vill spara? Rör det sig om objekt eller enklare typ av flaggor som i ditt exempel?

 

Absolut vanligast är nog att lägga in konstanter i en include fil som du inkluderar i dina asp sidor som Magnus säger. Detta är det enda sättet att definiera konstanter på i ASP. Lägger du dem i Session eller Applikation så är de inte längre konstanter.

 

Application och Session är långsammare än konstanter deklarerade i asp sidan. Application är speciell och tillåter endast seriell access oavsett antalet sessioner.

 

Scriptmotorn initierar konstanter och deklarerade varibler när koden kompilers (använd därför alltid option explicit) till skillnad från implicit variabeldeklaration där variabler slås upp genom namn (jämför med early/late binding i COM). Har man hög last kan detta vara något att ha i åtanke.

 

/foo

 

 

Link to comment
Share on other sites

Hmm.. jag har aldrig använt Option Explicit på några av mina sidor.

Blir bara irriterad då den klagar (ger ifrån sig nåt skumt felmeddelande som inte går tyda) då man inte deklarerat en konstant eller variabel ;)

 

Är det stor skillnad i prestanda / övrigt om man använder option explicit ?

 

Mvh Fredrik

 

Link to comment
Share on other sites

Hej!

 

Tja tyvärr är det så. Dock märker du inte av det förrän du har hög belastning på siten.

 

ASP är tyvärr inte så skalbart... men alla bäckar små som sagt. Det finns ett fåtal prestandatester gjorde men tyvärr har jag inte några länkar. Skall försöka leta reda på dem. Dock är Microsoft inte så pigga på just prestandatester då ASP inte placerar sig så lång fram jämfört med konkurrerande teknologier.

 

Dock har Microsoft har tagit fram en lång lista över prestandahöjande tips:

http://msdn.microsoft.com/library/default.asp?URL=/library/en-us/dnasp/html/ASPtips.asp

 

Här finns en annan som är mer inriktad mot databas + asp: http://www.sql-server-performance.com/asp_sql_server.asp

 

Det viktigaste att komma ihåg är att flera faktorer spelar in för att skapa ett skalbart system. Ofta kan man göra bra lösningar på ett ställe, som nullifieras genom en dålig lösning någon på ett annat ställe.

Dock gäller som alltid; erfarenhet ;)

 

/foo

 

Link to comment
Share on other sites

Tack för de trevliga tipsen :)

 

Har aldrig haft problem med någon långsam site som jag byggt. (Förrutom på de siter där jag glömt lägga till index på vissa tabeller då;)

 

Har för tillfället inte så överdrivet många besökare på min egna, men det är bra att göra sidan "grundligt gjord" från början.

Skulle det visa sig att sidan ändå går för segt så får man kika på flaskhalsarna?

 

Skulle någon sida gå långsamt så får man helt enkelt kolla upp vart problemet ligger och åtgärda det :) ?

 

Mvh Fredrik

 

Link to comment
Share on other sites

Alltid lär man sig något nytt varje dag :)

 

Tackar så mycket!

 

Den lösningen kör jag med just nu så man jag antar att den får fortsätta att vara så :)

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...