Någon som vet hur man kan förbättra denna kod?
Jag har precis uppgraderat databasen till MySQL 4.0.16
<%@ LANGUAGE="VBSCRIPT" %>
<% Response.Expires=-1
Response.Buffer = True
If Session("login") <> "ok" Then
Session("meddelande") = "Du måste vara inloggad för att kunna surfa runt här!!."
Response.Redirect "http://skene.nu"
End If
%>
<!-- #INCLUDE VIRTUAL="/include/koppling.asp" -->
<%
Set Rs = Connect.Execute("SELECT vems FROM plejs_fraga WHERE vems ='"& session("username") &"'")
If Rs.EOF Then
Dim fraga,svar1,svar2
fraga=Request.Form("fraga")
svar1=Request.Form("svar1")
svar2=Request.Form("svar2")
If fraga="" Then
fraga="Ska jag skaffa en fråga?"
ElseIf svar1="" Then
svar1="Ja"
Else
svar2="Nej"
End If
Connect.Execute("INSERT INTO plejs_fraga (vems,Fraga,datum,svar1,svar2) VALUES('"& session("username") &"','"& Replace(fraga,"'","''") &"','" & Now() & "','"& Replace(svar1,"'","''") &"','"& Replace(svar2,"'","''") &"') LIMIT 1")
Else
Connect.Execute ("update fraga set Fraga='"& Replace(fraga,"'","''") &"', datum='" & Now() & "', svar1='"& Replace(svar1,"'","''") &"', svar2='"& Replace(svar2,"'","''") &"' where vems='" & session("username") & "' LIMIT 1")
End If
Connect.Close : Set Connect = Nothing
Rs.Close : Set Rs=Nothing
Session("meddelande") = " Din omröstning är skapad!"
Response.Redirect "../plejs.asp?se="& session("username") &""
%>
En liten liten förbättring, men knappast vettig egetnligen är att istället för att slå upp Session("username") varje gång du behöver det så skapar du en konstant och lägger in värdet i. Då slipper kompilatorn leta igenom session objektet varje gång.
Det gäller rent generellt för allting av den typen, Request.form mm, att lägga över det i konstanter snabbar upp det om man använder samma sak flera gånger och värdet inte behöver ändras.
Onödig användning av sessionen "meddelande". Bättre att i så fall skicka besökaren vidare till "../plejs.asp?se="& session("username") &"&show=poll-ok". Då kan du på plejs.asp ha denna kod:
If Request.Querystring("show")="poll-ok" Then
Response.Write "Din omröstning är skapad!"
End If
Vidare så kan du i stället för (som du gör nu) köra en Replace på dåliga tecken när du sätter in data i databasen, ha en funktion för det i stället.
function fix_(str)
str = Replace(str,"'","''")
fix_ = str
end function
I stället för Replace(fraga,"'","''") så skriver du då fix_(fraga) och tillämpar detta på alla dina variabler som ska in i databasen. :)
Annars tycker jag allt ser bra ut, förutom att du inte har Option Explicit med, som tvingar dig att deklarera dina variabler. Är bra ur bland annat felsökningssynpunkt och inte minst ur prestandasynpunkt. Läs mer om detta i denna tråden.
Ur prestanda synpunkt är det ju inte effektivare att skriva en extra wrapper för att fixa replace av tecken. Bättre då att använda Replace varje gång, om man är ute efter prestanda.
Jag anser däremot att det är ett bra sätt för att skapa bättre läsbarehet i koden.
264 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e