iceM2Medlem sedan mars 2001243 inlägg Tänkte härmed starta en sammanhängande tråd där alla kan dela med sig av smarta ASP tips & tricks!
Har ni något som ni tror kan hjälpa andra, för bättre struktur, prestandad eller rent utav bättre ASP? Fallgropar vanliga misstag som man bör undvika och i så fall hur?
Allt e välkommet...
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
[Redigerat av iceM2 den 29 nov 2001]
iceM2Medlem sedan mars 2001243 inlägg Jag kan väl börja då, ni verkar ju så blyga?
Mitt tips som alla kanske inte vet? Är att istället för att rada upp en himla massa Response.Write så kan man lösa det med funktionen with tex
With Response
.Write "H"
.Write "E"
.Write "J"
End With
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
VideMedlem sedan dec. 19998 577 inlägg Eller skriva:
Response.write "H" & _
"E" & _
"J"
------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu
@ndersMedlem sedan juni 200032 969 inlägg Jag tar väl också en gammal klassiker:
Minns när ni undrat hur man får fram besökarens ip-adress eller sidan man kom ifrån?
Det finns en del roliga servervariabler, och detta lilla kodstycke listar upp allihopa och dess värde.
Slit den med hälsenan!
For each strVariable in Request.ServerVariables
Response.Write strVariable & " - " & Request.ServerVariables(strVariable) & "<br>"
Next
Trevligt initiativ förresten! :)
Mvh,
------------------
Don't panic!
icaaqMedlem sedan okt. 20005 273 inlägg iceM2:
Tänkte bara nämna att With är nått som bara funkar i ASP 3.0
Om vi ska skriva smarta saker kan vi ju nämna i vilken version det funkar i :)
------------------
kolung.....det tål att tänkas på!
[Redigerat av icaaq den 29 nov 2001]
BrimbaMedlem sedan dec. 19995 875 inlägg Gör inte saker två gånger
BrimbaMedlem sedan dec. 19995 875 inlägg skriv inte kod som gör att du måste ändra på två ställen
jorgenMedlem sedan feb. 20012 412 inlägg Okey mitt bidrag:
Ofta uppkommet problem är att if-satser inte fungerar på grund av olika subtyper. Här kommer de olika konverteringsfunktionerna:
CBool Function --> Boolean
CByte Function --> Byte
CCur Function --> Currency
CDate Function --> Date
CDbl Function --> Double
CInt Function --> Integer
CLng Function --> Long
CStr Function --> String
Red:
Ett användningsexempel:
If CInt(Request.Form("tal2")) > CInt(Request.Form("tal1")) Then
'#-- Skriv ut något kul --
Else
'#-- Skriv ut något tråkigt --
End If
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 29 nov 2001]
Om man vill kolla om en sträng är tom så gör man det lämpligast med If Len(Trim(str & "")) Then.
Då funkar det även om strängen är "", Empty eller Null! :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
icaaqMedlem sedan okt. 20005 273 inlägg mitt bidrag till stacken, tillsätta värden på variblar på samma rad:
strMening = "detta var smart" : intTal = 2001
En ska till är att döpa sina variblar med ett prefix här är några ex.
bln = saker som bara kan vara sant eller falskt
Byt = hur många byte går det på en megabyte?
dat = Tid och datum
err = Error
dbl = ett sorts tal som tål en massa decimaler
int = heltal
lng = ännu ett tal
sng =ännu ett tal
obj = är ett object
str = är text
jag är ju inte så haj på lng, sng och dbl så om nån vill förklara skilnaden vore det ju bra :)
------------------
kolung.....det tål att tänkas på!
Ett annat tips. Gör Server.HTMLEncode, smily/forumkodsersättning m.m. när ni presenterar det som finns i databasen och inte när ni lägger in det.
Varför?
En anledning är om man har ett databasfält som får innehålla 50 bokstäver och man satt forumulärsfältet på maxlength="50" och användaren skriver den fullt och nåt tecken är <, >, åäö eller liknande. Då kommer strängen bli längre och det går inte att lägga in i databasen.
En annan anledning:
Ersätter man radbrytningar med <br> när man lägger in det. Om man då vill redigera det som lagts in så måste man när man skriver ut det i fältet ersätta åt andra hållet. Bättre då att bara göra det när man presenterar det.
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
Int har begränsning i längd. Long har mindre begränsning och kan därför vara bra att använda för Id:n och liknande för om man använder Int så blir det problem när räknaren i en tabell börjar komma upp i höga tal.
Int i VBScript är mer begränsad än Int i databasen. (I alla fall om man använder SQL Server)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
jorgenMedlem sedan feb. 20012 412 inlägg Hej,
ett bidrag till. För att skilja presentationsskiktet från allt övrigt skräp är det bra att återanvända så mycket kod som möjligt i subbar och funktioner. En sak man kan återanvända är databaskopplingar som går utmärkt att lägga i en funktion.
Dim objConn
Function GetDBConn()
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "Driver={Mysql};Server=mysql.myserver.com;Database=db1; " & _
"UID=username;PWD=password"
Set GetDBConn = objConn
End Function
dim objDB
Set objDB = GetDBConn()
mvh Jörgen :)
------------------
Varför bråka när man kan kramas?
[Redigerat av jorgen den 29 nov 2001]
VideMedlem sedan dec. 19998 577 inlägg
Tänkte bara nämna att With är nått som bara funkar i ASP 3.0
Snarare VBScript 5.0, ASP innehåller bara en samling objekt, inte funktionerna i själva språket. :)
Lite tips & trix ifrån min hemsida:
Tips & Trix: del I
Tips & Trix: del II
------------------
Doesn't 'expecting the unexpected' make the unexpected expected?
webeye.nu
iceM2Medlem sedan mars 2001243 inlägg Tänkte spinna vidare lite på Erik Juhlins tips om att köra Server.HTMLEncode (om man nu vill det)när hämtar info från DBn. Har märkt problem med att kunna lista värden i bokstavsordning annars.
Varför? Om man kör Serv.HTMLencode innan man sätter in värden i databasen så ändras å,ä,ö, till respektives html-formatering vilket ger upphov till trubbel.
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
mrblondeMedlem sedan aug. 20012 349 inlägg en annan bra sak är att ha ett generellt sätt att döpa sina filer på.
1.Dela upp olika moduler i kataloger.
2.Låt den vanligen första filen i katalogen som visas heta default.asp
3.Är det ett framset. Döp frameset file till framset.asp.
4.Editeringsfiler för att tex editera en nyhet heter edit.asp
Det här sättet gör att man får enkla namn, och snabbt får en överskådlig blick bland sina filer.
(skönt att slippa change_news_or_add_new_newsthingie_to_db.asp filnamn)
------------------
"Utan tvivel är man inte klok"
Tage Danielsson
Ett tips när man kör HTMLEncode.
Eftersom att man ofta kör HTMLEncode på saker som kommer ur databaser och eftersom att de sakerna kan vara null så kan det bli problem.
Då kan det vara lämpligt att ha en egen funktion som kör HTMLEncode.
Function HE(str)
If Len(Trim(str & "")) = 0 Then Exit Function
HE = Server.HTMLEncode(str)
End Function
Då behöver man dessutom bara skriva korta HE! :D
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
I.o.f.s. kan man bara skriva Server.HTMLEncode(str & "").
Så mitt stora tips måste vara & "" som löser många problem med att strängar är Null! :)
------------------
/Erik
www.juhlin.nu /sk8files/ /mp2d/
iceM2Medlem sedan mars 2001243 inlägg Ett annat tips är att använda sig av en explict deklarering av variabler. Ha följande kod överst på ditt asp dokument:
<% Option Explicit %>
Denna kod säger till att alla variabler måste deklareras tillexempel med dim eller set. Varför? Det underlättar en hel del för att felsöka dina dokument.
Med explict deklarering kan det se ut så här:
<%
Option Explicit
Dim strNamn, iAge
strNamn = "Jan"
iAge = 12
%>
------------------
"Ni tre går och bildar en kvadrat" (Rolf Zetterlund under ett träningspass)
BrimbaMedlem sedan dec. 19995 875 inlägg När ni ställer frågor till databasen, är följande ganska användbart:
"select field1, iif(len(field2)>10,left(field2,7) & '...',field2) from tabell"
Detta gör att du redan i svaret har kollat exempelvis längden och fixat till den om den kanske är för lång.
Bra, istället för att behöva köra left() i loopen sedan, med if-satser osv.
------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=20" TARGET=_blank>Har du husdjur hemma?
</A>Varför får man inte dricka saltvatten?