---
title: "Tråden för smarta ASP tips/tricks"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/14183-tråden-för-smarta-asp-tips-tricks/page3"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "iceM2"
published: "2001-11-29T15:44:00.000Z"
updated: "2005-01-20T10:14:04.000Z"
replies: 92
views: 9894
page: 3
pages: 5
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/14183-tråden-för-smarta-asp-tips-tricks"
---

# Tråden för smarta ASP tips/tricks

_Sida 3 av 5._

## #41 — Erik Juhlin, 2001-12-01T22:03Z

Sen så bör man som jag sagt tidigare inte köra Server.HTMLEncode på något när man lägger in det i databasen.

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

## #42 — @nders, 2001-12-01T22:05Z

Korrekt. :)

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

## #43 — lazat, 2001-12-02T11:18Z

dubbet borttagen

\[Redigerat av lazat den 02 dec 2001\]

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

## #44 — mikul, 2001-12-02T13:50Z

tänkte visa hur man infogar radbrytning efter x antal tecken...

```
<%
Fubction br(str)
	Dim antal, tecken, count
	antal = 15  'antal tecken som raden skall vara.

	for tecken = 1 to len(str)
	     count = count + 1
	     Response.Write Mid(str, tecken, 1)
	     If count > antal Then Response.Write "<BR>": count = 0
	next
End Function

text = "på nästa rad visas hur du skriver ut en text med denna funktion."
Response.write br(text)  'text är en variabel som innehåller den text som visas ovanför. 
%>
```

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

## #45 — mozilla, 2001-12-02T18:11Z

fråga till Erik Juhlin(och er andra) du säger att man inte ska köra Server.HTMLEncode när man stoppar in i db utan när man tar ut? men tecken som &#0124; och '. Jag har hört att access inte gillar dem? måste man inte göra om dem innan då? eller?

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

## #46 — Erik Juhlin, 2001-12-02T18:33Z

Man ska i alla fall inte förlita sig på Server.HTMLEncode eftersom att det inte påverkar &#0124; och '. ;)

Pipetecken vet jag inte om de kan strula till det, men när man lägger in strängar med UPDATE eller INSERT eller jämför strängar så bör man ha en funktion som ersätter ' med ''.

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

## #47 — PatrikB, 2001-12-03T22:08Z

OK, ett litet tips.

Ni vet ju att "alla" användare inte kan tex fylla i sina namn ordentligt utan det ser ut tex som detta:

patrik berggren
lars-göran anderson

fast det borde se ut så hära:

Patrik Berggren
Lars-Göran Anderson

Då e denna lilla funktion smidig att ha:

```
	'## -- make first letter in every word and first letter after - in uppercase --
	Public Function ProperCase(ByVal vValue)
		Dim varTemp, vValue_tmp
		Dim lngLength
		Dim N
		Dim blnProper
		
		blnProper = True
		lngLength = Len(vValue)
		
		For N = 1 To lngLength
			varTemp = Mid(vValue,N,1)
			
			If blnProper = True Then
				varTemp = UCase(varTemp)
				blnProper = False
			End If
			
			vValue_tmp = vValue_tmp & varTemp
			
			If varTemp = " " or varTemp = "-" Then
				blnProper = True
			End If
		Next
		'## -- return value in proper case --
		ProperCase = vValue_tmp
	End Function
```

cya,
PatrikB

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

## #48 — Vide, 2001-12-03T22:22Z

Ett användbart tips då IIS vägrar uppdatera sidan:

```
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control", "no-store"
```

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

## #49 — Pace, 2001-12-21T20:17Z

Lite tips från mig! :)

**Struktur** \- Lägg ASP kod i subbar och funktioner för att lättare skilja HTML kod mot ASP. HTML-koden blir otroligt överskådlig och lätt att ändra i efterhand när man inte "grötar" ihop allt med varandra. Exempel:

```
<%
Function getNews()
 &nbsp; ' Hämtar nyheterna.
End Function

Sub displayNews()
 &nbsp; ' Visar nyheterna.
End Sub

arrNyheter = getNews() ' Hämtar nyheter

If isArray(arrNyheter) Then
 &nbsp; strHeadTitle = "Dagens nyheter"
Else
 &nbsp; strHeadTitle = "Inga nyheter idag"
End If
%>

<HTML>
<HEAD><TITLE><%= strHeadTitle %></TITLE></HEAD>
<BODY>
<% Call displayNews() %>
</BODY>
</HTML>
```

**Hämta från fält ur databas** \- Det bör inte göras med SELECT \* FROM tabell. Ange istället alla fälten som ska hämtas (även om det är alla!). På så vis kan du lägga till/ta bort fält i databasen enkelt, utan att du behöver ändra om ordningen på hämtningen av recordseten.

**Hämta datan först på sidan** \- Själv hämtar jag all data innan själva HTML-sidan skrivs ut. På så vis kan jag lägga ett meddelande i \<TITLE\>-taggen eller var jag vill. Använd ovanstående modell för det (Struktur).

**Använd Getrows** \- Öppna databaskopplingen snabbt, hämta med .getrows, stäng direkt efter! Sedan använder man Struktur-modellen ovan för att presentera datan.

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

## #50 — bulow, 2001-12-21T22:24Z

Skriv klasser och inte bara lösa subbar och funktioner.

När det gäller request("variabel") så bör man inte använda det. Det kan tydligen ställ till problem IIS:en.

Det bästa sättet om man har både GET och POST requests till sidan är följande:

Dim rm, variabel
rm = Request.ServerVariables("REQUEST_METHOD")

If rm = "POST" then
variabel = request.Form("variabel")
ElseIf rm = "GET" then
variabel = Request.QueryString("variabel")
End if

Använd alltid samm variabelnamn i ASP koden som i request variablerna.

Använd inte sessions variabler om du inte absolut måste.

Använd alltid Option Explicit.

Använd aldrig "On error resume next" under kodning. Och om du använder det vid skarpkörning, se till att du får ett mail med felmeddelanden eller loggar alla fel som uppstår.

Stäng databaskopplingar så fort du stoppat in datan i ditt recordset.

Sätt alla objekt till nothing och stäng alla öppna kopplingar när du är klar med dom.

Dimma alla variabler.

Kommentera koden. =)

//Micke

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

## #51 — Erik Juhlin, 2001-12-22T18:02Z

Fortsätter på Pace tråd. För att få en ännu bättre struktur, använd Com-objekt!

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

## #52 — iceM2, 2001-12-28T22:29Z

En guldgruva med en massa tips <http://www.asp101.com/tips/index.asp>

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

## #53 — KoTTeN, 2001-12-28T22:59Z

just de

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

## #54 — peppar, 2001-12-28T23:44Z

Erik Juhlins inlägg om att kolla om en sträng är tom...

> 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!

Använder samma If sträng, men kollar om ett recordset är tomt, detta fungerar endast om jag använder 'Empty', ej Null, eller 0

```
If Len(Trim(RecSet("streng" & "")),Empty Then
```

?? Hur kommer det sig? Beror det på serverkomponenter och olikheter, eller?

//alltid p\*

\[Redigerat av peppar den 29 dec 2001\]

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

## #55 — PatrikB, 2001-12-29T12:03Z

```
RecSet("streng" & "")
```

bör nog vara:

```
RecSet("streng") & ""
```

du ska ju bygga på en "tom-sträng" på recset posten och inte på recset postens namn

cya,
PatrikB

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

## #56 — icaaq, 2001-12-29T20:24Z

Ett litet tips när ni sska bygga upp databasstrukturen, döp tabellerna med ett prefix t\_ (t_medlemmar) och fälten med f\_ (f_login).

På det sättet slipper ni vara rädda för att namnet på fältet är namnskyddat i nån dialekt av SQL.

god fortsättning :)

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

## #57 — Palleman, 2002-01-03T09:03Z

En kul grejj att testa med tanke på tipset om vilka sätt man kan använda för Response.Write.

Kör denna kod och kolla hastigheten mellan de olika sätten:

```
<%
     
dInitTime = Timer
     
'--## Metod 1
     For n = 1 To 500000
          %>.<%
     Next
     
     fPeriod = FormatNumber(Timer - dInitTime, 3, True)
     Response.Write "<br>Metod 1 gav tiden: "& fPeriod &"<br><br>"
     dInitTime = Timer
     
     
'--## Metod 2
     For n = 1 To 500000
          Response.Write "."
     Next
     
     fPeriod = FormatNumber(Timer - dInitTime, 3, True)
     Response.Write "<br>Metod 2 gav tiden: "& fPeriod &"<br><br>"
     dInitTime = Timer
     
     
'--## Metod 3
     With Response
          For n = 1 To 500000
          .Write "."
          Next
     End With
     
     fPeriod = FormatNumber(Timer - dInitTime, 3, True)
     Response.Write "<br>Metod 3 gav tiden: "& fPeriod &"<br><br>"
     
%>
```

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

## #58 — M@rtin, 2002-02-03T02:56Z

Det här senaste tycker jag är mycket intressant. Alla jag pratat med och alla böcker jag läst säger att det är bättre att använda response.write än att ha massa %\> \<% Detta är alltså helt fel?

Och att använda with verkar inte vara någon hit. Det kanske går snabbare att skriva koden men sidan blev ju väldigt slö :o

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

## #59 — Pace, 2002-02-03T11:05Z

> Det här senaste tycker jag är mycket intressant. Alla jag pratat med och alla böcker jag läst säger att det är bättre att använda response.write än att ha massa %\> \<% Detta är alltså helt fel?

Nej. Om du kör 20 000 stycken content-switchar så är det mycket slöare än 20 000 Response.Write. Testet ovan är knappast någon vanlig metod av hantering av utdata.

> Och att använda with verkar inte vara någon hit. Det kanske går snabbare att skriva koden men sidan blev ju väldigt slö

Jo, with är snabbare eftersom man bara kallar på Response en gång, och därefter enbart metoden Write.

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

## #60 — M@rtin, 2002-02-03T15:38Z

Okej. Det beror alltså på hur mkt man ska skriva  ut :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/14183-tråden-för-smarta-asp-tips-tricks/page3  
Föregående sida: https://www.webforum.nu/amne/asp/14183-tråden-för-smarta-asp-tips-tricks/page2.md  
Nästa sida: https://www.webforum.nu/amne/asp/14183-tråden-för-smarta-asp-tips-tricks/page4.md
