webForumDet fria alternativet

"Dagens citat"-funktion?

ASP

8 svar · 189 visningar · startad av Lukaspojken

Medlem sedan maj 20011 312 inlägg
Frågan#1

"Dagens citat" följer med på varje sida så jag vill inte göra en db-hämtning varje gång man byter sida. Att skapa en statisk-includefil av det är därför mitt alternativ, men hur gör jag för att den ska göra en uppdatering varje ny dag. Citaten finns i en databas. Jag vet hur man skapar en statiskfil från databasen men jag vet inte hur jag ska lyckas med att göra det automatiskt?

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan juni 20019 024 inlägg
#2

Gör det inte så svårt för dig!

Om någon surfar in på sidan och denna filen inte finns - skapa den!

------------------
Peter D

Medlem sedan juni 20019 024 inlägg
#3

... eller en rad för varje dag, dvs 31 rader.

Om användaren surfar in idag, den 22:a, plockas rad 22 ut.

------------------
Peter D

Medlem sedan maj 20011 312 inlägg
#4

Hur kan jag checka om en fil finns eller inte?

Det ska inte vara massa rader...det blir 365 rader som den måste gå igenom och det är inte så bra.

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan juni 20019 024 inlägg
#5

Kolla om filen finns eller ej:

Set ObjLoggFile = Server.CreateObject("Scripting.FileSystemObject")

If ObjLoggFile.FileExists("citat.fil") Then Response.Write "jepp, filen finns"

Ett annat sätt är ju att spara citatet i en application, där du också sätter ett datum. Är det inte dagens datum så är det bara att hämta ett nytt citat från db:n och uppdatera datumet i application. :)

Det går ju göra på motsvarande sätt med en text-fil, vilket jag tycker är att föredra.

------------------
Peter D

Medlem sedan maj 20011 312 inlägg
#6

Ska se lite vad jag kan hitta på...tack...

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan juni 2000690 inlägg
#7

Du kan kolla mitt exempel på en enkel schemaläggare här:
http://www.bengan.com/tips/default.asp?tips=asp_schema_2.asp

Använd den nedre på varje sida där citatet skall infogs så är du säker på att få dagens citat oberoende var besökaren kommer in.

Sen kan du göra koden för citathämtningen så att den dels sparar citatet i en txt fil och dels skriver ut det med Response.write.

Lägg sen koden så här:

' --- Kolla om det är ny dag och uppdatera isåfall filen. ---
If Application("citat") <> Day(Now()) Then

	Server.Execute "citat_update.asp"

	Application.Lock
	Application("citat") = Day(Now())
	Application.Unlock

Else 
%>
<!-- #include file="citat.txt" -->
<% End If %>

citat_update.asp är alltså den fil som du kör själva uppdateringen i. Har du sidorna på IIS4 så får du istället lägga in all kod ovan för då funkar inte Server.Execute.

------------------
MvH
/Bengan
www.bengan.com | Brossans Räjser
"Better to be hated for who you are than loved for who you're not."

[Redigerat av Bengan den 22 jul 2001]

Medlem sedan maj 20011 312 inlägg
#8

Vad innebär detta?

Application.Lock
Application("citat") = Day(Now())
Application.Unlock

------------------
Alltid lär man sig något nytt varje dag...

Medlem sedan juni 2000690 inlägg
#9

Du sparar helt enkelt dagens nummer i som ett applikations-värde. Funkar precis som en vanlig variabel fast det ligger i minnet och kan därför läsas av alla sidor.

Application.Lock bör man köra för att det inte skall bli en "krock" när flera sidor försöker spara samtidigt. Har ingen större betydelse i det här fallet men jag tycker det är bra att ta för vana och skriva så.

------------------
MvH
/Bengan
www.bengan.com | Brossans Räjser
"Better to be hated for who you are than loved for who you're not."

270 ms totalt · 4 externa anrop · v20260731065814-full.2f471f9e
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)