/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Læste tråde i forum
Fra : Jens Peter Rosenkvis~


Dato : 17-12-05 18:36

De fleste har vel set et phpBB forum. Når man er logget ind, kan
systemet huske præcis hvilke tråde og svar der er postet siden man sidst
var på.
Jeg har overvejet en del hvordan man kan gøre dette, men de løsninger
jeg er kommet frem til, har alle brugt meget plads i databasen, eller
vil kræve meget store cookies hos hver bruger.

Jeg kunne selvfølgelig hente phpBB og selv komme frem til det i koden,
men da jeg ikke er særlig skarp i php, ville det nok tage mig ganske
lang tid.

Derfor, er der nogen, der har et forslag eller ide til hvordan det kan
gøres lettest i ASP?
Det bemærkes, at der i et phpBB forum ikke huskes hvad man ikke har
læst, hvis man forlader siden/logger ud. Altså, alt bliver markeret som
læst, når man forlader siden.

--
Why do fireflies die so soon?
http://www.jensercube.dk/sig.asp

http://www.bevargruppeeksamen.dk

 
 
Adam Ellesøe (18-12-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 18-12-05 16:02

Kan man ikke bare gemme tid og dato for brugerens sidste visit....

Regner med at indlægende bliver stemplet med tid og dato....

--
MVH
Adam G. Ellesøe



Jens Peter Rosenkvis~ (18-12-2005)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 18-12-05 19:58

Adam Ellesøe wrote:
> Kan man ikke bare gemme tid og dato for brugerens sidste visit....
>
> Regner med at indlægende bliver stemplet med tid og dato....

Jo, det kan man sagtens. Men når en bruger så kommer igen, vil alle de
nye stå som ulæst, hvilket jo er fint.
Men i phpBB, så husker den præcis hvad man har læst. Dvs., at hvis der
er 100 ulæste svar siden du sidst var på siden og så læser fem af dem,
kan du se hvilke fem du har læst og hvilke 95 du mangler.
Det løser sidste visit jo ikke problemet med.

--
Why do fireflies die so soon?
http://www.jensercube.dk/sig.asp

http://www.bevargruppeeksamen.dk

Adam Ellesøe (19-12-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 19-12-05 22:58

> Jo, det kan man sagtens. Men når en bruger så kommer igen, vil alle de nye
> stå som ulæst, hvilket jo er fint.
> Men i phpBB, så husker den præcis hvad man har læst. Dvs., at hvis der er
> 100 ulæste svar siden du sidst var på siden og så læser fem af dem, kan du
> se hvilke fem du har læst og hvilke 95 du mangler.
> Det løser sidste visit jo ikke problemet med.
Nææ det gør det vel ikke... Jeg kender heller ikke phpBB .... Men jeg
tror at jeg ville oprette en tabel i db der holdte styr på de læste kontra
de ulæste (du må vurdere hvad der er mest passende, at gemme de læste eller
de ulæste) og så når brugeren loggede på så hente indlæg og læst/ulæst ind
vha. et sql join...
Se f.eks. her: http://www.w3schools.com/sql/sql_join.asp

> Why do fireflies die so soon?
Can't quit smoking???
--
MVH
Adam G. Ellesøe



Jens Peter Rosenkvis~ (19-12-2005)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 19-12-05 23:25

Adam Ellesøe wrote:
>
> Nææ det gør det vel ikke... Jeg kender heller ikke phpBB .... Men jeg
> tror at jeg ville oprette en tabel i db der holdte styr på de læste kontra
> de ulæste (du må vurdere hvad der er mest passende, at gemme de læste eller
> de ulæste) og så når brugeren loggede på så hente indlæg og læst/ulæst ind
> vha. et sql join...

Men så kommer jeg jo ud i problemet, jeg nævnte i min første post, at
det vil kræve en hel masse plads. Desuden er en join heller ikke billig
at foretage, især hvis den skal foretages hver gang en bruger kommer ind
på en side.
Desuden, hvis jeg opretter sådan en tabel, skal der også til at ryddes
op i den jævnligt.

En løsning jeg har overvejet, men ikke ved hvor smart det er, er at lave
tidsstemplet som du nævner.
Hver gang en bruger så læser en tråd, der er nyere end hans tidsstempel,
bliver det gemt i en cookie. Herved bliver alle tråde efter hans besøg
markeret som nye, bortset fra dem der bliver listet i brugerens cookie.
Nogen input til om det er en god eller dårlig ide?


>>Why do fireflies die so soon?
>
> Can't quit smoking???

?
Det er et citat fra en film (Grave of the Fireflies).

--
Why do fireflies die so soon?
http://www.jensercube.dk/sig.asp

http://www.bevargruppeeksamen.dk

Adam Ellesøe (19-12-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 19-12-05 23:39

> Men så kommer jeg jo ud i problemet, jeg nævnte i min første post, at det
> vil kræve en hel masse plads. Desuden er en join heller ikke billig at
> foretage, især hvis den skal foretages hver gang en bruger kommer ind på
> en side.
En masse plads??? de par kb er da ikke noget at tale om...

> Desuden, hvis jeg opretter sådan en tabel, skal der også til at ryddes op
> i den jævnligt.
Det tror jeg ikke er nødvendigt, Kun hvis en bruger sletter sig selv, eller
hvis beskeden slettes...

>
> En løsning jeg har overvejet, men ikke ved hvor smart det er, er at lave
> tidsstemplet som du nævner.
> Hver gang en bruger så læser en tråd, der er nyere end hans tidsstempel,
> bliver det gemt i en cookie.
1. Hvis han læser en besked det er to dage siden at han har været på og han
vælger at læse en besked fra logon dagen så vil alle beskeder fra den
forgående dag markeres som læste... Dårlig ide...
2. Hvis du taler om billig metode ift join, så er du galt afmarcheret, det
er så vidt jeg ved ikke særligt "økonomisk" at skulle sende en cookie til
serveren samt at skrive til den jævnligt...
3. Er cookies tilladt hos clienten??

Jeg taler jo om et join af to tabeller i samme db, og jeg holder nu på at
det er den bedste og mest driftsikre løsning

>>>Why do fireflies die so soon?
>>
>> Can't quit smoking???
> ?
> Det er et citat fra en film (Grave of the Fireflies).
Det var en joke....

--
MVH
Adam G. Ellesøe



Jens Peter Rosenkvis~ (20-12-2005)
Kommentar
Fra : Jens Peter Rosenkvis~


Dato : 20-12-05 00:57

Adam Ellesøe wrote:
>>Men så kommer jeg jo ud i problemet, jeg nævnte i min første post, at det
>>vil kræve en hel masse plads. Desuden er en join heller ikke billig at
>>foretage, især hvis den skal foretages hver gang en bruger kommer ind på
>>en side.
>
> En masse plads??? de par kb er da ikke noget at tale om...

Hvis det for _hver_ bruger skal gemmes, om en tråd er læst eller ej, vil
jeg da tro, at det hurtig kommer op i mere end et par kb.
Tænkte også på, at der jo så hele tiden skal skrives til databasen, men
det er måske bedre end at skrive en cookie? (Vil jeg selv tro, men ved
det ikke)

>>Desuden, hvis jeg opretter sådan en tabel, skal der også til at ryddes op
>>i den jævnligt.
>
> Det tror jeg ikke er nødvendigt, Kun hvis en bruger sletter sig selv, eller
> hvis beskeden slettes...

Ja, men så skal der jo foretages mere oprydning, så der er det ikke et
problem.
Mente, at hvis man bruger tidsstempel som primær markør, vil man efter
at logge ind og ud en gang, have en del poster i database, der markerer
at de tråde er læst, selvom der aldrig vil blive tjekket på dem senere.


>>En løsning jeg har overvejet, men ikke ved hvor smart det er, er at lave
>>tidsstemplet som du nævner.
>>Hver gang en bruger så læser en tråd, der er nyere end hans tidsstempel,
>>bliver det gemt i en cookie.
>
> 1. Hvis han læser en besked det er to dage siden at han har været på og han
> vælger at læse en besked fra logon dagen så vil alle beskeder fra den
> forgående dag markeres som læste... Dårlig ide...

Nej, i cookien skulle det gemmes præcis, hvilke af de nye tråde der er læst.
Så hver gang han læser en ulæst tråd, bliver det gemt i en cookie. Den
løber så ud efter en dage (så længe er de færreste vel logget ind af
gangen ;))

> 2. Hvis du taler om billig metode ift join, så er du galt afmarcheret, det
> er så vidt jeg ved ikke særligt "økonomisk" at skulle sende en cookie til
> serveren samt at skrive til den jævnligt...

Du har jo nok ret.

> 3. Er cookies tilladt hos clienten??

Kan jeg godt se problemet i.
Så vidt jeg husker fungerer sessions heller ikke uden, at man har
aktiveret cookies (ret mig hvis jeg tager fejl), og da login-løsningen
er baseret på sessions kan det vel antages, at brugeren har det tilladt.

> Jeg taler jo om et join af to tabeller i samme db, og jeg holder nu på at
> det er den bedste og mest driftsikre løsning

Vil da ikke udelukke det. :P


Mens jeg har siddet og skrevet dette svar, har jeg gjort mig et par
tanker omkring database modellen du nævnte.
Jeg antager, at antallet af læste tråd hurtigt vil blive væsentligt
større end antallet af ulæste tråde for de fleste tråde. Derfor er det
vel bedst at skrive de ulæste beskeder i databasen.
Derfor kunne det gøres ved at når en bruger loggede på, blev der skrevet
i databasen med alle de tråde, der er nye siden hans sidste besøg på siden.
Hver gang han så læser en tråd, bliver den tilsvarende post i databasen
slettet.
Herved vil man jo også kunne gemme fra besøg til besøg om en bruger har
læst en tråd.
Lyder dette som en fornuftig model?

--
Why do fireflies die so soon?
http://www.jensercube.dk/sig.asp

http://www.bevargruppeeksamen.dk

Adam Ellesøe (21-12-2005)
Kommentar
Fra : Adam Ellesøe


Dato : 21-12-05 17:07

> Du har jo nok ret.
Ja,

>> 3. Er cookies tilladt hos clienten??
>
> Kan jeg godt se problemet i.
> Så vidt jeg husker fungerer sessions heller ikke uden, at man har
> aktiveret cookies (ret mig hvis jeg tager fejl), og da login-løsningen er
> baseret på sessions kan det vel antages, at brugeren har det tilladt.
Det er rigtigt, men du havde jo ikke skrevet noget om sessions....

> Mens jeg har siddet og skrevet dette svar, har jeg gjort mig et par tanker
> omkring database modellen du nævnte.
> Jeg antager, at antallet af læste tråd hurtigt vil blive væsentligt større
> end antallet af ulæste tråde for de fleste tråde. Derfor er det vel bedst
> at skrive de ulæste beskeder i databasen.
Hmm... man må jo også tænke på antallet af brugere i alt og antallet af
online brugere... Så jeg tror at det vil være smartere at logge de læste
mails, hvilket jo foregår simultant med at indlægget læses...

> Derfor kunne det gøres ved at når en bruger loggede på, blev der skrevet i
> databasen med alle de tråde, der er nye siden hans sidste besøg på siden.
> Hver gang han så læser en tråd, bliver den tilsvarende post i databasen
> slettet.
Det vil jo sige at der skulle skrives værdier til alle brugerne hvergang der
blev oprettet et indlæg...

> Herved vil man jo også kunne gemme fra besøg til besøg om en bruger har
> læst en tråd.
Det kan man også den anden vej omkring....
> Lyder dette som en fornuftig model?
Nej, vice versa er bedre...
Du skal ikke bekymre dig om størelsen på din db, mere på trafikken og
hvornår trafikken finder sted... PS. Jeg har aldrig prøvet at lave et forum
på den måde, men efter at have tænkt over det, er jeg sikker på at det er
den bedste løsning.... Mange af de "store" sider er udelukkende baseret på
db... så...



Søg
Reklame
Statistik
Spørgsmål : 177500
Tips : 31968
Nyheder : 719565
Indlæg : 6408514
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste