webForumDet fria alternativet

Glömt något eller tips hur jag ska optimera

ASP

25 svar · 627 visningar · startad av electronic

Medlem sedan juni 200215 inlägg
Frågan#1

God kväll!

Nu är det så att jag är en glad amatör när det gäller ASP och skulle behöva lite hjälp! Har jag glömt något i koden eller finns det något bra sätt jag kan omptimera den på, sidan känns väldigt segladdad (kan bero på servern)!?

Koden:

<% Session.LCID = 1053 %>

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas/databasen.mdb")

Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM teknik WHERE id = " & Request.Querystring("id")
SQL = SQL & " ORDER BY rubrik"
RecSet.Open (SQL), Connect,3,3
%>

<html>
<head>
<title>teknik</title>
<link rel="stylesheet" href="stylee/text.css" type="text/css">
</head>

<body bgcolor="#ffffff">
<table width="420" border="0" cellspacing="1" cellpadding="5" bgcolor="#EFEFEF">
<tr>
<td bgcolor="#F7F7F7" width="210"><b>Teknik</b> / <%=RecSet("kategori")%></td>
<td bgcolor="#ffffff" rowspan="3" valign="top" width="210"><img src="<%=RecSet("bild")%>"></td>
</tr>
<tr>
<td bgcolor="#ffffff"><b><%=RecSet("rubrik")%></b><br>
<%text = server.htmlencode(RecSet("text"))%><%= Replace(text,vbCrLf,"<br>")%></td>
</tr>
<tr>
<td bgcolor="#ffffff">Tillverkare: <a href="http://www.<%=RecSet("lank_tillv_www")%>" target="_blank"><%=RecSet("lank_tillv")%></a><br>
Köp: <a href="http://www.<%=RecSet("lank_kop_www")%>" target="_blank"><%=RecSet("lank_kop")%></a></td>
</tr>
<tr align="right">
<td bgcolor="#ffffff" colspan="2" class="litentext">Skriven av <a href="mailto:<%=RecSet("epost")%>?subject=<%=RecSet("rubrik")%>"><%=RecSet("av")%></a> <%=RecSet("datum")%> <%=RecSet("tid")%></td>
</tr>
</table>
</body>
</html>

Medlem sedan apr. 20022 743 inlägg
#2

Ja, ta bort alla <% %> det räcker med ett par och använda Response.Write. som du har det nu är det rena mordet på servern ;)

sen stänger du inte recordsetet eller databasen vad jag kan se? eller det kasnke inte finns med i koden du visat bara?

Medlem sedan nov. 20017 144 inlägg
#3

Välkommen till WF!

Dimma allt

Ta bort <!-- #include file = "adovbs.inc" -->

skriv:
RecSet.Open (SQL), Connect,3,3
istället för:
RecSet.Open SQL, Connect, adOpenStatic, adLockOptimistic

Medlem sedan juni 200215 inlägg
#4

Nu då?

Ok, vilka <% %> kan jag ta bort och hur ska det se ut med Response.Write?

Nu en sån där dumfråga! Hur stänger jag lämpligast databasen? Med

<%
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
%>

eller?

"Dimma allt", putta mig lite i rätt riktning ivf. är som sagt rookie!

Medlem sedan mars 20015 287 inlägg
#5

RED. Nja, vi avaktar med den lösningen, trött...

Medlem sedan jan. 20023 327 inlägg
#6

Databas stängingen ser bra ut! Jag hämtar i och för sig allt med get.rows() när jag använder ASP, man kan stänga db-kopplingen snabbare då. Du lägger den valda datan i en array som du sedan lopar ut... Blir inte lika mycket spagetti-kod då som du nu har!

Medlem sedan apr. 20022 743 inlägg
#7

ex:

istället för:
<td bgcolor="#F7F7F7" width="210"><b>Teknik</b> / <%=RecSet("kategori")%></td>

skriver du:
Response.Write "<td bgcolor=""#F7F7F7"" width=""210""><b>Teknik</b> / " & RecSet("kategori") & "</td> "

Medlem sedan nov. 20017 144 inlägg
#8

Re: Nu då?

electronic skrev:

Ok, vilka <% %> kan jag ta bort och hur ska det se ut med Response.Write?

Nu en sån där dumfråga! Hur stänger jag lämpligast databasen? Med

<%
RecSet.Close
Connect.Close
Set RecSet = Nothing
Set Connect = Nothing
%>

eller?

"Dimma allt", putta mig lite i rätt riktning ivf. är som sagt rookie!

Du kan ta bort alla förutom två.
Där du skriver text så byter du ut alla dubbelfnuttar emot två dubbelfnuttar.

<font size="2" face="Verdana">Hej på dig</font>

Blir med ASP.

Response.write "<font size=""2"" face=""Verdana"">Hej på dig</font>"

Skall du skriva väldigt mycket text så gör du nedflyttningstecken.

Response.write "<font size=""2"" "&_
" face=""Verdana"""&_
">Hej på dig</font>"

Recordset och variablar lägger du in så här:

Response.write Rs("id")

eller

Response.write id

Med mixad text och variabel:

Response.write variabel &"Vanlig text"& variabel &" text"

Stängning av databasen(viktigt för prestandan) gör du först genom att stänga recordsetet:

RecSet.Close
Set RecSet = Nothing

Sedan så stänger du din connection:

Connect.Close
Set Connect = Nothing

Dimma variablar gör du först i din kod med:

Dim RecSet, Connect, och, alla, andra, namn, som, du, satt, själv

Titta runt lite hur andra gör, det gör jag också! Det är skitkul.

Puhh... Lycka till!

Medlem sedan apr. 20022 743 inlägg
#9

Jesper T:

tänkte på det du skrev: "Skall du skriva väldigt mycket text så gör du nedflyttningstecken"

har det någon märkbar prestanda ökning att använda detta gentemot att skriva response.write? har bara tagit som vara att använda detta fast jag vet inte om det är bättre eller sämmre :/

Medlem sedan nov. 20017 144 inlägg
#10

Skriver du 10 response.write på en sida så tror jag inte att man märker ngn skillnad, men i sammantaget så är det ju många bäckar små...

Medlem sedan apr. 20022 743 inlägg
#11

oki, då fortsätter jag som jag gör :) (använder nerflyttningstecken)

Medlem sedan juni 200215 inlägg
#12

Vad är fel!?

När jag gör så här skrivs det bara ut "False", varför?!

<tr>
<% Response.Write "<td bgcolor=""#ffffff""><b>"&RecSet("rubrik")&"</b><br>"&_
""&text = server.htmlencode(RecSet("text"))&""& Replace(text,vbCrLf,"<br>")&"</td>"%>
</tr>

Medlem sedan dec. 2000557 inlägg
#13

Du försöker skriva ut text = server.htmlencode(RecSet("text")) vilket inte fungerar...

Ändra till server.htmlencode(Replace(RecSet("text"),vbCrLf,"<br>"))

Redigerat:

Alltså typ så här:

<tr> 
<% Response.Write ""&_
"<td bgcolor=""#ffffff""><b>"& RecSet("rubrik") &"</b><br>"&_ 
""& server.htmlencode(Replace(RecSet("text"),vbCrLf,"<br>")) &"</td>" %> 
</tr>
Medlem sedan juni 200215 inlägg
#14

Tackar! Men nu är det bara det att <br> blir <br> och då skrivs det ju ut som text!

Medlem sedan nov. 20017 144 inlägg
#15

Det du skulle kunna göra är att innan response.write skriva
strText = Replace(RecSet("strText"),vbCrLf,"<br>")

<% Response.Write "<td bgcolor=""#ffffff""><b>"& RecSet("rubrik") &"</b><br>"&_
""& strText&"</td>" %>

text är för övrigt inte riktigt bra att avända då det är ett reserverat ord i access.

Medlem sedan nov. 20017 144 inlägg
#16

strText=Replace(RecSet("strText"),vbCrLf,"<br>")
strText=Replace(RecSet("strText"),"<","&**_**lt;")
Response.write strText
Obs! &_lt; utan _(underscore)
Måste skriva så här annars så står det <

Medlem sedan nov. 20017 144 inlägg
#17

natti natti *gäsp*

Medlem sedan dec. 200012 464 inlägg
#18

Kan du göra lite mätningar och se vilka delar som tar tid? T.ex. att hämta från databasen är en del som kan vara tung.

Det finns en funktion som heter Timer som man kan använda.

beginstartTid = timer()
startTid = beginstartTid
'hämta från databas
response.write "elapsed databas " &  timer() - startTid

startTid = timer()
'andra operationer
response.write "elapsed annat" &  timer() - startTid

'slut
response.write "elapsed total" &  timer() - beginstartTid
Medlem sedan mars 20002 836 inlägg
#19

jag skulle nog ändra själva öppningen av recordsetet. Du listar, läser, ju endast recordsetet och uppdaterar det inte.

Skulle öppna med dessa argument:

RecSet.Open (SQL), Connect, 0, 1

cya,
PatrikB

Medlem sedan juni 200215 inlägg
#20

Man tackar och bockar, ett par frågor till bara!

Underbart att man kan få så mycket hjälp!

Men... en koll på hur det ser ut nu skulle kanske inte skada. Sen får jag inte till det med <br> i texten! Det blir <br> i texten och då skrivs ju det ut som <br>, är ni med?

<% Session.LCID = 1053 %>

<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databas/databasen.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM teknik WHERE id = " & Request.Querystring("id")
SQL = SQL & " ORDER BY rubrik"
RecSet.Open (SQL), Connect, 0, 1
%>

<html>
<head>
<title>lootec.com - teknik</title>
<link rel="stylesheet" href="stylee/text.css" type="text/css">
</head>

<body bgcolor="#ffffff">
<table width="420" border="0" cellspacing="1" cellpadding="5" bgcolor="#EFEFEF">

<tr>
<% Response.Write ""&_
"<td bgcolor=""#F7F7F7"" width=""210""><b>Teknik</b> / "&RecSet("kategori")&"</td>"&_
"<td bgcolor=""#ffffff"" rowspan=""3"" valign=""top"" width=""210""><img src="&RecSet("bild")&"></td>"%>
</tr>

<tr>
<% Response.Write ""&_
"<td bgcolor=""#ffffff""><b>"& RecSet("rubrik") &"</b><br>"&_
""& server.htmlencode(Replace(RecSet("innehall"),vbCrLf,"<br>")) &"</td>" %> <- Felet med <br>
</tr>

<tr>
<% Response.Write ""&_
"<td bgcolor=""#ffffff"">Tillverkare: <a href=""http://www."&RecSet("lank_tillv_www")&""" target=""_blank"">"&RecSet("lank_tillv")&"</a><br>"&_
"Köp: <a href=""http://www."&RecSet("lank_kop_www")&""" target=""_blank"">"& RecSet("lank_kop")&"</a></td>"%>
</tr>

<tr align="right">
<% Response.Write ""&_
"<td bgcolor=""#ffffff"" colspan=""2"" class=""litentext"">Skriven av <a href=""mailto:"&RecSet("epost")&" ?subject="&RecSet("rubrik")&" "">"&RecSet("av")&"</a>"&RecSet("datum")&""&RecSet("tid")&"</td>"%>
</tr>

</table>
</body>
</html>

<%
RecSet.Close
Set RecSet = Nothing
Connect.Close
Set Connect = Nothing
%>

LarsG, hur gör jag för att testa mot databasen, I'm a rookie!

273 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
145 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)