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?
25 svar · 627 visningar · startad av electronic
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>
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?
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
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!
RED. Nja, vi avaktar med den lösningen, trött...
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!
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> "
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!
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 :/
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å...
oki, då fortsätter jag som jag gör :) (använder nerflyttningstecken)
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>
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>
Tackar! Men nu är det bara det att <br> blir <br> och då skrivs det ju ut som text!
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.
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 <
natti natti *gäsp*
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
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
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!