|
| Smileys.... Fra : Rene' Godskesen |
Dato : 29-01-02 13:19 |
|
Hvordan indsætter jeg smileys i mit forum og skal det gøres når indlægget
lægges i databasen, eller når jeg henter fra DB'en...
Før brugte jeg REPLACE når jeg hentede fra DB'en, men når en tråd er på
f.eks. 100 indlæg og man skal REPLACE en 4-5 smileys, så er det ret krævende
for CPU'en...
Derfor...
Hvad gør jeg så?
Mvh.
Rene'
| |
Lars Hoffmann (29-01-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 29-01-02 14:22 |
|
Rene' Godskesen <godskesen@has.dk> escribió en el mensaje de noticias
3c569365$0$261$ba624c82@nntp02.dk.telia.net...
> Før brugte jeg REPLACE når jeg hentede fra DB'en, men når en tråd er
på
> f.eks. 100 indlæg og man skal REPLACE en 4-5 smileys, så er det ret
krævende
> for CPU'en...
Du goer da bare _akurrat_ det samme, men foer teksten laegges ned i
db'en,
Med venlig hilsen
Lars Hoffmann
| |
Jesper Stocholm (29-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 29-01-02 22:17 |
|
Lars Hoffmann wrote in news:a367iv$ji5$1@newsreader.mailgate.org:
> Rene' Godskesen <godskesen@has.dk> escribió en el mensaje de noticias
> 3c569365$0$261$ba624c82@nntp02.dk.telia.net...
>
>> Før brugte jeg REPLACE når jeg hentede fra DB'en, men når en tråd er
> på
>> f.eks. 100 indlæg og man skal REPLACE en 4-5 smileys, så er det ret
> krævende
>> for CPU'en...
>
> Du goer da bare _akurrat_ det samme, men foer teksten laegges ned i
> db'en,
det mener du ikke, vel ? Hvad så når han vil bruge data til noget andet
end HTML ? Så har han noget ødelagt data, der er knyttet til HTML ... og
skal så rette det tilbage igen for at få fx WML-sider ud af det.
Og til René: Er der nogen grund til at du vil rette det i alle indlæg på
én gang ? Hvorfor ikke kun i det indlæg, der på et givet tidspunkt læses.
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Rene' Godskesen (29-01-2002)
| Kommentar Fra : Rene' Godskesen |
Dato : 29-01-02 22:28 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse > Og til
René: Er der nogen grund til at du vil rette det i alle indlæg på
> én gang ? Hvorfor ikke kun i det indlæg, der på et givet tidspunkt læses.
Hej Jesper..
På http://www.toyotaextreme.dk/debse.asp?id=12689&ForumID=2 tror jeg du
finder svaret...
Alle indlæg er nemlig åbne på samme tid
NB. Har du en ide til mit smiley problem??
Rene'
| |
Jesper Stocholm (29-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 29-01-02 22:51 |
|
Rene' Godskesen wrote in
news:3c5713dc$0$251$ba624c82@nntp02.dk.telia.net:
>
> "Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse > Og
> til René: Er der nogen grund til at du vil rette det i alle indlæg på
>> én gang ? Hvorfor ikke kun i det indlæg, der på et givet tidspunkt
>> læses.
>
> På http://www.toyotaextreme.dk/debse.asp?id=12689&ForumID=2 tror jeg
> du finder svaret...
>
> Alle indlæg er nemlig åbne på samme tid
> NB. Har du en ide til mit smiley problem??
>
næeh ... men mon ikke et design-review var på sin plads ?
:)
Jeg tog lige fat i et tilfældigt indlæg, og det var på ca. 1000 tegn ...
Titlen på indlægget er "Når man klikker på ..."
Det vil altså sige, at du vil have en side på +100kb i ren tekst ...
dertil kommer et logo (forum) på 8 kb, et smiley-logo på måske en
kilobyte (jeg har et smiley-billede på 800bytes), et billede af en lille
mand på nok også en kilobyte, et toplogo på 30 kb, et bundlogo på 10 kb.
Alt i alt altså noget i retning af 150-200 kb for hele siden.
Har du slet ikke tænkt på folk med ikke så hurtige forbindelser ?
:)
På html.dk findes der nogle eksempler på rekursive funktioner, der giver
mulighed for at lave "tråde" i disse diskussionsfora. Imo ser det også
lidt mere prof ud - i sammenligning med et forum, hvor alle indlæg blot
vises nedad. Det giver også imo et bedre overblik end den fortløbende
visning af indlæg, som du nu har.
Eksemplet findes på http://www.html.dk/scripts/asp/00015/
Jeg vil på det kraftigste fraråde, at du laver dine rå (rene) data om for
at komme udenom dit problem med processor-kraft.
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Rene' Godskesen (30-01-2002)
| Kommentar Fra : Rene' Godskesen |
Dato : 30-01-02 07:41 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse
news:Xns91A5E876EDF14spamstocholmdk@192.38.208.81...
>>næeh ... men mon ikke et design-review var på sin plads ?
Hvis du tænker på Processorkraft, så har jeg fuld forståelse for argumentet,
men hvis du tænker på brugervenlighed, så er der ikke noget værre end de
forums, hvor man konstant sidder og klikker for at læse de f.eks. 30 indlæg
der er i en tråd...
Det er min personlige mening, men efter at have spurgt mange af mine
medlemmer, så deler de denne opfattelse
Så redesign kan det ikke blive til
Det vil de aldrig acceptere
Men jeg vil prøve at finde en løsning hvor jeg kan få mine smileys sat
ind...
PS. Mht. grafik..
En smiley skal vel kun hentes nede på PC'en EN gang.. så bliver den hentet
fra cache'en hver gang derefter??
Mvh.
Rene'
| |
Jesper Stocholm (30-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 30-01-02 09:24 |
|
Rene' Godskesen wrote in
news:3c5795b3$0$258$ba624c82@nntp02.dk.telia.net:
>
> "Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse
> news:Xns91A5E876EDF14spamstocholmdk@192.38.208.81...
>>>næeh ... men mon ikke et design-review var på sin plads ?
>
> Hvis du tænker på Processorkraft, så har jeg fuld forståelse for
> argumentet, men hvis du tænker på brugervenlighed, så er der ikke
> noget værre end de forums, hvor man konstant sidder og klikker for at
> læse de f.eks. 30 indlæg der er i en tråd...
>
det er vel ikke værre end at bruge en newsreader ...
> Det er min personlige mening, men efter at have spurgt mange af mine
> medlemmer, så deler de denne opfattelse
>
> Så redesign kan det ikke blive til
> Det vil de aldrig acceptere
>
ok ... smag og behag ...
> Men jeg vil prøve at finde en løsning hvor jeg kan få mine smileys sat
> ind...
>
> PS. Mht. grafik..
> En smiley skal vel kun hentes nede på PC'en EN gang.. så bliver den
> hentet fra cache'en hver gang derefter??
>
jo ... det er korrekt. De er også kun regnet med en enkelt gang i den
summation jeg foretog tidligere. Hvis de skulle hentes enkeltvis, så
kunne du lægge et par hundrede kb til :)
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Lars Hoffmann (30-01-2002)
| Kommentar Fra : Lars Hoffmann |
Dato : 30-01-02 09:07 |
|
Jesper Stocholm <spam200201@stocholm.dk> escribió en el mensaje de
noticias
>
> det mener du ikke, vel ?
Jo naturligvis.
> Hvad så når han vil bruge data til noget andet
> end HTML ?
Det kommer naturligvis an paa hans behov, men naar det nu er et forum
kan jeg ikke se megen anden brug af dataene end at laese dem ind i en
html side. Hvis han endelige absolut skal bruge det til noget andet er
det nemt nok at parse for billederne og erstatte dem tilbage igen.
Med venlig hilsen
Lars Hoffmann
| |
Jesper Stocholm (30-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 30-01-02 09:34 |
|
Lars Hoffmann wrote in news:a389g7$cep$1@newsreader.mailgate.org:
> Jesper Stocholm <spam200201@stocholm.dk> escribió en el mensaje de
> noticias
>>
>> det mener du ikke, vel ?
>
> Jo naturligvis.
>
>> Hvad så når han vil bruge data til noget andet
>> end HTML ?
>
> Det kommer naturligvis an paa hans behov, men naar det nu er et forum
tjoeh ... jeg sad og grublede lidt over det i går ... og man kan jo sige,
at hvis han nu ikke vil bruge data til andet end et HTML-forum, så er der
jo sådan set ikke noget problem. Jo ... problemet er, at det er forbasket
svært at spå - specielt om fremtiden. Jeg har selv et par gange prøve at
redesigne en løsning - da jeg havde forventet, at jeg ikke ville komme i en
givet situation. Der er næsten ikke noget værre arbejde end dette :)
> kan jeg ikke se megen anden brug af dataene end at laese dem ind i en
> html side. Hvis han endelige absolut skal bruge det til noget andet er
> det nemt nok at parse for billederne og erstatte dem tilbage igen.
Naturligvis er det en beslutning René skal tage ... og det kan da godt
være, at det blot er mig, der er en (bitter) krakilsk nar, der er præget af
nogle design-principper på fra mit arbejde. Men i tilfældet med et forum,
så er grundlaget for dette jo netop de data brugerne indsætter i en
database. Disse da vil jeg blot være forbasket forsigtig med at rette for
meget i.
Og til René: Jeg kommer til at tænke på: Du laver jo i forvejen en replace
() med linieskift (<br>) ... noget der trods alt må være langt flere af end
smileys ... er du sikker på det er din smiley-replace, der koster knapper i
din processor ?
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Rene' Godskesen (30-01-2002)
| Kommentar Fra : Rene' Godskesen |
Dato : 30-01-02 09:52 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse
> Og til René: Jeg kommer til at tænke på: Du laver jo i forvejen en replace
> () med linieskift (<br>) ... noget der trods alt må være langt flere af
end
> smileys ... er du sikker på det er din smiley-replace, der koster knapper
i
> din processor ?
Du har ret....
Men hvis jeg nu kunne tænke mig f.eks. 5 eller 10 forskellige smileys, så
vil det øge cpu-kraften en del..
Ved ikke hvor meget det betyder, men udbyderen har været efter mig før mht.
forbrug, så jeg skal gå 'stille med dørene'
Mht. mit forum vs. en newsreader...
Så virker min reader (outlook express) ved at jeg har 2 vinduer.. et til
subject.. og et til selv teksten...
Og her er det nemt at navigere, men hvis du ikke laver et forum i frames, så
skal du reloade siden hver gang du åbner et indlæg, og så forsvinder imo
brugervenligheden.....
Rene'
| |
Jesper Stocholm (30-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 30-01-02 10:25 |
|
Rene' Godskesen wrote in
news:3c57b45c$0$246$ba624c82@nntp02.dk.telia.net:
>
> "Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse
>
>> Og til René: Jeg kommer til at tænke på: Du laver jo i forvejen en
>> replace () med linieskift (<br>) ... noget der trods alt må være
>> langt flere af
> end
>> smileys ... er du sikker på det er din smiley-replace, der koster
>> knapper
> i
>> din processor ?
>
> Du har ret....
> Men hvis jeg nu kunne tænke mig f.eks. 5 eller 10 forskellige smileys,
> så vil det øge cpu-kraften en del..
jo ... det har en tendens til at udvikle sig. Jeg havde tidligere et
trådet forum på min hjemmeside, og det startede også med, at jeg ville
have mulighed for at udskifte smileys med billeder ... og det endte med,
at jeg lavede mulighed for at udskifte til de billeder jeg har liggende
på http://stocholm.dk/images/gifs
> Mht. mit forum vs. en newsreader...
>
> Så virker min reader (outlook express) ved at jeg har 2 vinduer.. et
> til subject.. og et til selv teksten...
> Og her er det nemt at navigere, men hvis du ikke laver et forum i
> frames, så skal du reloade siden hver gang du åbner et indlæg, og så
> forsvinder imo brugervenligheden.....
>
det har du ret i ... og det skal self. med i overvejelserne. Det tager
dog ikke lang tid at reloade en side med et enkelt indlæg i. Der er jo
også mulighed for at anvende IFRAME ... men så smider du jo NN4x-brugerne
væk :)
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Rene' Godskesen (30-01-2002)
| Kommentar Fra : Rene' Godskesen |
Dato : 30-01-02 11:00 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse ...
>og det endte med,
>at jeg lavede mulighed for at udskifte til de billeder jeg har liggende
>på http://stocholm.dk/images/gifs
Hvordan har du gjort det rent praktisk...?
Problemet med flere REPLACE'er er jo at den skal gennemsøge teksten x antal
gange..
Kan man ikke lave én søgning, der så udskifter, alt efter hvad den møder på
sin vej igennem indlægget..
hvis du forstår ??
Rene'
| |
Jesper Stocholm (30-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 30-01-02 11:42 |
|
Rene' Godskesen wrote in
news:3c57c436$0$259$ba624c82@nntp02.dk.telia.net:
>
> "Jesper Stocholm" <spam200201@stocholm.dk> skrev i en meddelelse ...
>>og det endte med,
>>at jeg lavede mulighed for at udskifte til de billeder jeg har
>>liggende på http://stocholm.dk/images/gifs
>
> Hvordan har du gjort det rent praktisk...?
> Problemet med flere REPLACE'er er jo at den skal gennemsøge teksten x
> antal gange..
>
> Kan man ikke lave én søgning, der så udskifter, alt efter hvad den
> møder på sin vej igennem indlægget..
> hvis du forstår ??
>
den løsning jeg lavede var ikke specielt effektiv ... men jeg havde også
kun et enkelt indlæg, som jeg skulle udskifte billeder i
Hvis jeg skulle lave det igen, så ville jeg nok gøre det således:
Jeg ville bestemme, at jeg ville udskifte tegn-kombinationer som
" "," "," " ... etc . Dvs de tegn jeg ville udskifte ville
altid være på i alt tre tegn i træk. Dernæst ville jeg gå min streng
igennem i blokke af 3 ... dvs
Iteration Tegn
---------------
1 1-3
2 2-4
3 3-5
4 4-6
....
....
I (pseudo)kode ville jeg gøre:
function replaceChars(strPost)
dim i ' as integer
dim strModPost,3charPost, ' as string
for i = 1 to len(strPost)-2
' strPost er det enkelte indlæg
3CharPost = mid(strPost,i,3)
'For hver 3 tegn:
SELECT CASE 3CharPost
CASE " "
strModPost = strModPost & "<img src=""billeder/smile.gif"">"
' her lægges så to til i, så man springer
' hen til slutningen af det udskiftede tegn.
i = i+2
CASE " "
strModPost = strModPost & "<img src=""billeder/sad.gif"">"
i = i+2
CASE " "
...
...
CASE ELSE
strModPost = strModPost & 3CharPost
END SELECT
Next
replaceChars = strModPost
end function
response.write replaceChars(rs("posting"))
Jeg er ikke helt sikker på, at koden er 100% korrekt ... men det bør
give dig en idé om, hvad det er jeg forsøger at forklare :)
Ovenstående giver et enkelt gennemløb af strengen - dvs len(str)
iterationer (ca.) . Til gengæld bruger du slet ikke replace undervejs. I
stedet opbygger du så din streng undervejs i gennemløbet. Det eneste du
så mangler er at udskifte linieskift - og evt æøå.
Du kan principielt gøre det samme med en funktion til æøå.
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Allan Ebdrup (30-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 30-01-02 12:07 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
news:Xns91A676FCA48F2spamstocholmdk@192.38.208.81...
> den løsning jeg lavede var ikke specielt effektiv ... men jeg havde også
> kun et enkelt indlæg, som jeg skulle udskifte billeder i
>
> Hvis jeg skulle lave det igen, så ville jeg nok gøre det således:
>
> Jeg ville bestemme, at jeg ville udskifte tegn-kombinationer som
> " "," "," " ... etc . Dvs de tegn jeg ville udskifte ville
> altid være på i alt tre tegn i træk. Dernæst ville jeg gå min streng
> igennem i blokke af 3 ... dvs
>
> Iteration Tegn
> ---------------
> 1 1-3
> 2 2-4
> 3 3-5
> 4 4-6
[Klip]
Hej Jesper
Det tror jeg vil være en meget dårlig ide fordi:
1) Concatanation (sammenlægning af strenge) i VBScript er en meget dyr
operation, og derudover er den implementeret dårligt.
Dvs. hver gang du kalder koden:
strModPost = strModPost & <<et eller andet>>
koster det O(n) tid og du gør det O(n) gange, dvs. din algoritme er O(n^2)
tidskompleksitet, det er virkeligt noget der gør ondt på store beskeder.
for mere om concatanation:
http://support.microsoft.com/support/kb/articles/Q170/9/64.ASP
en diskussion on concatanation kan findes her:
http://groups.google.com/groups?hl=en&th=2d3bcb282e90cda5&rnum=1
2) Replace er faktisk temmelig hurtig i sig selv.
3) Hvis du vil lave een replace skal du nærmere ud i noget med regulære
udtryk, men jeg tvivler på det vil være ret meget hurtigere end at benytte
Replace() og det vil ihvertfald være sværere at lave og forstå
MVH
Allan Ebdrup
www.ti-fire.dk
| |
Jesper Stocholm (30-01-2002)
| Kommentar Fra : Jesper Stocholm |
Dato : 30-01-02 12:23 |
|
Allan Ebdrup wrote in news:a38k26$1tde$1@news.cybercity.dk:
> "Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
> news:Xns91A676FCA48F2spamstocholmdk@192.38.208.81...
>> den løsning jeg lavede var ikke specielt effektiv ... men jeg havde
>> også kun et enkelt indlæg, som jeg skulle udskifte billeder i
>>
>> Hvis jeg skulle lave det igen, så ville jeg nok gøre det således:
>>
[snip]
>
> Hej Jesper
> Det tror jeg vil være en meget dårlig ide fordi:
> 1) Concatanation (sammenlægning af strenge) i VBScript er en meget dyr
> operation, og derudover er den implementeret dårligt.
ok ... det vidste jeg ikke ...
> Dvs. hver gang du kalder koden:
> strModPost = strModPost & <<et eller andet>>
> koster det O(n) tid og du gør det O(n) gange, dvs. din algoritme er
> O(n^2) tidskompleksitet, det er virkeligt noget der gør ondt på store
> beskeder.
hmmm ... kan vi ikke lige dvæle ved dette ?
Hvordan kan det være O(n) tid - hvor n er længden af det samlede indlæg ?
handlingen må da være afhængig af de strenge, der puttes sammen. Er det
ikke snarere O(m1+m2), hvor m1 er længden af den pt samlede streng - og
m2 er længden af den streng man ønsker at putte på ?
Hvis vi antager, at den altovervejende del af et indlæg ikke skal
udskiftes - dvs det meste er alm tekst, så bliver det
len(tempStr) len(appendStr)
-----------------------------
1 1
2 1
3 1
4 1
.... dvs det bliver samlet
SUM(start: i=0,slut: i=len(strPost)) i
.... altså 1+2+3+4+5+6+7+8+9+ ... + len(strPost) [+ len(strPost)]
.... hvilket er betragteligt mindre end len(strPost)^2
Jeg skal lige huske at sige, at jeg forstår din pointe ... men vstudsede
blot over dit overslag over komplexiteten af algoritmen :)
--
Jesper Stocholm - http://stocholm.dk
Synes du også, at Britney trods alt er meget lækker - men dog
på grænsen til det kvalmende ? http://stocholm.dk/britney.txt
| |
Allan Ebdrup (31-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 31-01-02 12:38 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
news:Xns91A67DF3ADEB9spamstocholmdk@192.38.208.81...
> Allan Ebdrup wrote in news:a38k26$1tde$1@news.cybercity.dk:
> > "Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
> > news:Xns91A676FCA48F2spamstocholmdk@192.38.208.81...
[klip]
> > Dvs. hver gang du kalder koden:
> > strModPost = strModPost & <<et eller andet>>
> > koster det O(n) tid og du gør det O(n) gange, dvs. din algoritme er
> > O(n^2) tidskompleksitet, det er virkeligt noget der gør ondt på store
> > beskeder.
>
> hmmm ... kan vi ikke lige dvæle ved dette ?
>
> Hvordan kan det være O(n) tid - hvor n er længden af det samlede indlæg ?
> handlingen må da være afhængig af de strenge, der puttes sammen. Er det
> ikke snarere O(m1+m2), hvor m1 er længden af den pt samlede streng - og
> m2 er længden af den streng man ønsker at putte på ?
>
> Hvis vi antager, at den altovervejende del af et indlæg ikke skal
> udskiftes - dvs det meste er alm tekst, så bliver det
>
> len(tempStr) len(appendStr)
> -----------------------------
> 1 1
> 2 1
> 3 1
> 4 1
>
> ... dvs det bliver samlet
>
> SUM(start: i=0,slut: i=len(strPost)) i
>
> ... altså 1+2+3+4+5+6+7+8+9+ ... + len(strPost) [+ len(strPost)]
>
> ... hvilket er betragteligt mindre end len(strPost)^2
Hej Jesper
Ja jeg forklarede det nok lidt hurtigt, vi kan sagtens dvæle lidt ved det.
Din række:
1+2+3+4+5+6+7+8+9+ ... + len(strPost) [+ len(strPost)]
er O(len(strPost)^2)
Bevis:
Hver concatanation tager O(2*len(konkatanation)) tid (først bruges en
temporær streng hvor begge strenge kopieres over i O(len(konkatanation)) og
så kopieres denne temporære streng over i den endelige variabel
O(len(konkatanation)). ***
Hvis vi nu ligger to af de rækker sammen du skriver ovenfor, men lidt
snedigt propper et 0 (nul) ind i rækken og vender den anden række om, får
vi:
0 + 1 + ... + (N-1) + N plus
N + (N-1) + ... + 1 + 0
----------------------
N + N + ... + N + N
Dvs. Vi har N+1 led der giver N dvs. i alt laves der (N+1)*N arbejde (plus
det løse) hvilket er O(N^2)
MVH
Allan Ebdrup
www.ti-fire.dk
*** Dette skridt er bare at gange det du skriver med to. To er en konstant
og giver derfor samme O tid, hvis jeg havde unladet dette havde jeg bare
fået ½*(N+1)*N arbejde, hvilket også er O(N^2), så skridtet er egentligt
overflødigt.
| |
Torben Brandt (30-01-2002)
| Kommentar Fra : Torben Brandt |
Dato : 30-01-02 18:32 |
|
Rene' Godskesen wrote in dk.edb.internet.webdesign.serverside.asp:
> Kan man ikke lave én søgning, der så udskifter, alt efter hvad den møder på
> sin vej igennem indlægget..
> hvis du forstår ??
Jeg har bikset noget sammen her, som kun kalder RegExp.Replace een gang og som
kan udskifte alle smileys. Men det er ikke særlig elegant, fordi der skal ske
noget mærkeligt serverside for at det virker helt.
Koden er:
----------------
<html>
<body>
<script>
function getfile (smiley) {
smiley = smiley.substr(smiley.indexOf("/", 7)+1); <--- (note 1)
switch (smiley) {
case " " :
return "/img/glad.gif";
case ":-|" :
return "/img/ligeglad.gif";
case " " :
return "/img/sur.gif";
}
}
</script>
<%
sFraDB = "Jeg er glad , jeg er ligeglad :-| og jeg er sur !"
Set oRegEx = new RegExp
oRegEx.Global = True
oRegEx.Pattern = "((:-\))|(:-\|)|(:-\())" <--- (note
2)
sReplacer = "<img src="""" onerror=""this.src=getfile('$1');"">"
Response.Write oRegEx.Replace(sFraDB, sReplacer)
%>
</body>
</html>
------------- slut -----------
Egentlig sker der det at " " bliver skiftet ud med "<img src=""
onerror="this.src=getfile(' ');">"
Det er jo tydeligt at src ikke peger på et billede, så der sker en fejl og
getfile finder så filnavnet til smiley'en.
NB!! Hvis det igen giver en fejl -> uendelig løkke, så stierne skal passe!
Note 1. Når src er tom så er src egentlig den sti, fx http://www.dom.com/,
hvor filen ligger på. 7-tallet gør at man finder den sidste "/".
Man kunne også bruge .lastIndexOf, men det er ikke så godt, hvis smileyen
indeholder en "/"
Note 2. Du skal huske at skrive smileyerne i "RegExp-Pattern-sprog".
Det virker, men er absolut ikke perfekt.
Metoden er nok bedst, hvis filnavnet kunne være "/img/smiley .gif" for så
kunne det laves meget bedre, men på Windows kan filerne jo ikke indeholde fx
":", så det duer ikke her, men hvis det var "LOL" o.lign. det skulle blive til
billeder, så var det nemmere.
/Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Torben Brandt (30-01-2002)
| Kommentar Fra : Torben Brandt |
Dato : 30-01-02 18:39 |
|
Torben Brandt wrote in dk.edb.internet.webdesign.serverside.asp:
> Rene' Godskesen wrote in dk.edb.internet.webdesign.serverside.asp:
> > Kan man ikke lave én søgning, der så udskifter, alt efter hvad den møder på
> > sin vej igennem indlægget..
> > hvis du forstår ??
Denne linie og note 1 skal bare fjernes. De betyder intet!
> smiley = smiley.substr(smiley.indexOf("/", 7)+1); <--- (note 1)
I øvrigt: hvis man læser indlægeget på html.dk (hvad jeg godt ved ikke alle gør!)
og måske andre steder på webben, så skal man lige huske at "lodret streg-tegnet
|" ikke bliver vist! Og det er vist heller ikke meningen at der skal være
smileybilleder i program-koden!?
/Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Allan Ebdrup (31-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 31-01-02 12:46 |
|
"Torben Brandt" <torben@actuar.dk> wrote in message
news:a39alk$2m8$1@sunsite.dk...
> Rene' Godskesen wrote in dk.edb.internet.webdesign.serverside.asp:
> > Kan man ikke lave én søgning, der så udskifter, alt efter hvad den møder
på
> > sin vej igennem indlægget..
> > hvis du forstår ??
>
> Jeg har bikset noget sammen her, som kun kalder RegExp.Replace een gang og
som
> kan udskifte alle smileys. Men det er ikke særlig elegant, fordi der skal
ske
> noget mærkeligt serverside for at det virker helt.
[Klip]
Hej Torben
Du mener vel at der skal ske noget clientside? Og hvorfor er det "mærkeligt"
det der skal ske?
Det er en udemærket løsning du har lavet, men som jeg fordså da jeg kiggede
i min krystalkugle så er der nogle problemer med den:
1) Koden er ikke just nem at forstå, specielt ikke set i forhold til den
simple opgave den løser.
2) Folk uden javascript slået får ingen smileys.
3) Er du sikker på at det går specielt meget hurtigere end at bruge replace
3 gange?
4) Man kunne lave en ekstre HTML-klar version af teksten i databasen, og så
bare spytte den ud, det ville virke på alle browsere og være hurtigere.
MVH
Allan Ebdrup
www.ti-fire.dk
| |
Torben Brandt (31-01-2002)
| Kommentar Fra : Torben Brandt |
Dato : 31-01-02 14:56 |
|
Allan Ebdrup wrote in dk.edb.internet.webdesign.serverside.asp:
> "Torben Brandt" <torben@actuar.dk> wrote in message
> news:a39alk$2m8$1@sunsite.dk...
> > Jeg har bikset noget sammen her, som kun kalder RegExp.Replace een gang og
> som
> > kan udskifte alle smileys. Men det er ikke særlig elegant, fordi der skal
> ske
> > noget mærkeligt serverside for at det virker helt.
> [Klip]
> Hej Torben
> Du mener vel at der skal ske noget clientside? Og hvorfor er det "mærkeligt"
> det der skal ske?
Jo, clientside, det var en skrivefejl.
Jeg synes det er noget mærkeligt (eller dårligt) at sende kode til brugeren,
som med vilje giver en fejl.
Så skal alle billederne først prøve at hente deres src, og så giver det en fejl
og så hente det rigtige...
Det burde kunne laves bedre
> Det er en udemærket løsning du har lavet, men som jeg fordså da jeg kiggede
> i min krystalkugle så er der nogle problemer med den:
> 1) Koden er ikke just nem at forstå, specielt ikke set i forhold til den
> simple opgave den løser.
Nej det er rigtigt nok. Men jeg skal da gerne svare på spørgsmål.
> 2) Folk uden javascript slået får ingen smileys.
Indrømmet, det er ikke så heldigt
> 3) Er du sikker på at det går specielt meget hurtigere end at bruge replace
> 3 gange?
Nej, jeg interesserer mig normalt ikke så meget for hvor hurtigt scriptet
kører, bare det ikke er _alt_ for langsomt. Så jeg har ikke så meget erfaring
med at prøve den slags efter.
Hvis man kun bruger 3 smileys, så er det nok ikke hurtigere, men tankegangen
skulle være at man kun løber strengen igennem én gang, og så kigger efter det
hele på en gang. Så kommer effektiviteten jo af hvor godt RegExp er
programmeret. Og det skal jeg ikke gøre mig klog på.
> 4) Man kunne lave en ekstre HTML-klar version af teksten i databasen, og så
> bare spytte den ud, det ville virke på alle browsere og være hurtigere.
Også en udmærket løsning. Sålænge data i forummet ikke fylder alt for meget til
at have liggende i to "næsten ens" udgaver.
Eller 5) Hvis man gemmer data i html-formatet i databasen, så kunne man lave
denne transformation (indtastet -> html-kode) som en bijektiv afbildning, så
kunne man altid få data tilbage.
/Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Allan Ebdrup (31-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 31-01-02 20:22 |
|
"Torben Brandt" <torben@actuar.dk> wrote in message
news:a3bidj$p9j$1@sunsite.dk...
> > 4) Man kunne lave en ekstre HTML-klar version af teksten i databasen, og
så
> > bare spytte den ud, det ville virke på alle browsere og være hurtigere.
> Også en udmærket løsning. Sålænge data i forummet ikke fylder alt for
meget til
> at have liggende i to "næsten ens" udgaver.
En faktor 2 til forskel burde ikke betyde det store i datastørrelse, hvis
det gør det skal man alligevel til at kigge på andre løsninger.
> Eller 5) Hvis man gemmer data i html-formatet i databasen, så kunne man
lave
> denne transformation (indtastet -> html-kode) som en bijektiv afbildning,
så
> kunne man altid få data tilbage.
Stort set alt kan gøres, spørgsmålet er om det er nemt at arbejde med i
praksis og det er det ikke når man ikke gemmer den originalt indtastede
tekst.
Vil du fx finde alle indlæg med smileys når du søger på strengen "<img"?
MVH
Allan Ebdrup, 10-4 ApS
Messageboard? prøv http://www.aspfastforum.com/aspfastforum/
| |
Torben Brandt (31-01-2002)
| Kommentar Fra : Torben Brandt |
Dato : 31-01-02 23:22 |
|
Allan Ebdrup wrote in dk.edb.internet.webdesign.serverside.asp:
> "Torben Brandt" <torben@actuar.dk> wrote in message
> news:a3bidj$p9j$1@sunsite.dk...
> > Eller 5) Hvis man gemmer data i html-formatet i databasen, så kunne man
> lave
> > denne transformation (indtastet -> html-kode) som en bijektiv afbildning,
> så
> > kunne man altid få data tilbage.
>
> Stort set alt kan gøres, spørgsmålet er om det er nemt at arbejde med i
> praksis og det er det ikke når man ikke gemmer den originalt indtastede
> tekst.
>
> Vil du fx finde alle indlæg med smileys når du søger på strengen "<img"?
Hvordan man skal lede efter (alle) smileys i databasen kommer jo an på hvordan
man vælger at gemme dem. Os så skulle man jo søge på noget, der var
karakteristisk for den måde man "escapede" smileyene.
Hvis data består at tekst og de eneste billeder, der kommer, er når der
indsættes et smileybillede, så kunne det da være en mulighed.
Hvis det var en bestemt smiley, så var "<img" jo ikke karakteristisk for den
smiley...
Jeg bruger selv i flere tilfælde 5), når de formål jeg kan tænke mig til, gør
at det er en god måde.
Så bliver den kode jeg har nu simplere og hurtigere, fordi data ikke skal
bearbejdes. Og jeg begrænser ikke mine muligheder endegyldigt.
/Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Allan Ebdrup (01-02-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 01-02-02 10:13 |
|
"Torben Brandt" <torben@actuar.dk> wrote in message
news:a3cg2a$28j$1@sunsite.dk...
> > Vil du fx finde alle indlæg med smileys når du søger på strengen "<img"?
> Hvordan man skal lede efter (alle) smileys i databasen kommer jo an på
hvordan
> man vælger at gemme dem. Os så skulle man jo søge på noget, der var
> karakteristisk for den måde man "escapede" smileyene.
> Hvis data består at tekst og de eneste billeder, der kommer, er når der
> indsættes et smileybillede, så kunne det da være en mulighed.
> Hvis det var en bestemt smiley, så var "<img" jo ikke karakteristisk for
den
> smiley...
Du misforstår spørgsmålet, problemet er at hvis du søger efter strengen
"img" i fx et forum der handler om HTML så kommer resultatet til at
indeholde alle de poster der har smileys, og det er jo ikke meningen.
Generelt risikerer du at søgeresultatet bliver ugennemskueligt for brugeren
når du gemmer en modificeret tekst i databasen og søger på den. Og det er
bare eet problem med metoden.
> Jeg bruger selv i flere tilfælde 5), når de formål jeg kan tænke mig til,
gør
> at det er en god måde.
Det er muligt der er specailtilfælde hvor metoden kan bruges, men jeg ville
ikke gøre det medmindre det var strengt nødvendigt
> Så bliver den kode jeg har nu simplere og hurtigere, fordi data ikke skal
> bearbejdes. Og jeg begrænser ikke mine muligheder endegyldigt.
Det kommer an på hvad du mener med "simplere". Jeg synes:
1) Det er sværer at opbygge et program konceptuelt letforståeligt når de
data du har i din database indeholde præsentation (specifik for HTML).
2) Når du skal proppe dine data NED i databasen, så skal du jo alligevel
bearbejde dem, så den kode slipper du ikke for at skrive.
3) Vi du vil rette i din afbildning til HTML er det uendeligt meget nemmere
med en kodning der køres ved hvert udtræk.
Ang "hurtigere" så
1) Jeg tvivler på at det er et problem i de fleste tilfælde.
2) Hvis det bliver et problem med hastigheden kan du som nævnt gemme to
kopier af dine data, den originale og en HTML-klar version.
De eneste forskelle mellem at gemme to versioner og din metode er at:
1) man skal oprette et ekstra felt i databasen (fx med præfix HTML)
2) Når man gemmer/opdaterer data skal du gemme begge vesioner (simpel
modifikation af to SQL strenge)
3) Når du laver udtræk til HTML skal du bare have fat i dit HTML felt.
Ganske simpelt hvis du spørger mig.
Dvs min metode giver kode der:
1) Har samme hastighed i udtræk
2) Samme forståelighed
3) Konceptuelt bedre, ved seperation af data og præsentation (som kan ses på
fx søgeproblemet)
Meget firkantet vil jeg sige at jeg ved jeg har ret, og det eneste vi kan
blive enige om er at være uenige
MVH
Allan Ebdrup, 10-4 ApS
www.ti-fire.dk
| |
Allan Ebdrup (30-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 30-01-02 11:25 |
|
"Rene' Godskesen" <godskesen@has.dk> wrote in message
news:3c57b45c$0$246$ba624c82@nntp02.dk.telia.net...
> Mht. mit forum vs. en newsreader...
>
> Så virker min reader (outlook express) ved at jeg har 2 vinduer.. et til
> subject.. og et til selv teksten...
> Og her er det nemt at navigere, men hvis du ikke laver et forum i frames,
så
> skal du reloade siden hver gang du åbner et indlæg, og så forsvinder imo
> brugervenligheden.....
For at trutte i mit eget horn så kan det godt lade sig gøre at lave et forum
der virker som en newsreader og holde brugervenligheden i top, se fx på:
http://www.aspfastforum.com/aspfastforum/
specielt den nye version 2.6.0 som der frigives imorgen.
Nogle brugere foretrækker denne måde at navigere på mens andre foretrækker
den hvor hele debatten kommer i en stor liste "view entire thread"
funktionen i ASP Fast Forum (AFF).
MVH
Allan Ebdrup
| |
Allan Ebdrup (30-01-2002)
| Kommentar Fra : Allan Ebdrup |
Dato : 30-01-02 11:42 |
|
"Jesper Stocholm" <spam200201@stocholm.dk> wrote in message
news:Xns91A6615A633C3spamstocholmdk@192.38.208.81...
> Lars Hoffmann wrote in news:a389g7$cep$1@newsreader.mailgate.org:
>
> > Jesper Stocholm <spam200201@stocholm.dk> escribió en el mensaje de
> > noticias
> >>
> >> det mener du ikke, vel ?
> >
> > Jo naturligvis.
> >
> >> Hvad så når han vil bruge data til noget andet
> >> end HTML ?
> >
> > Det kommer naturligvis an paa hans behov, men naar det nu er et forum
>
> tjoeh ... jeg sad og grublede lidt over det i går ... og man kan jo sige,
> at hvis han nu ikke vil bruge data til andet end et HTML-forum, så er der
> jo sådan set ikke noget problem. Jo ... problemet er, at det er forbasket
> svært at spå - specielt om fremtiden. Jeg har selv et par gange prøve at
> redesigne en løsning - da jeg havde forventet, at jeg ikke ville komme i
en
> givet situation. Der er næsten ikke noget værre arbejde end dette :)
Vi har haft denne diskussion før i denne nyhedsgruppe og der er rigtigt
mange argumenter for at gemme den oprindelige besked som den var da den blev
tastet ind (fx til søgning og nemmere generering af ikke-HTML versioner),
men man kan jo bare gemme BÅDE den oprindelige version og en HTML version,
så kan man spytte HTML versionen ud når man skal vise beskeden via IIS.
> > kan jeg ikke se megen anden brug af dataene end at laese dem ind i en
> > html side. Hvis han endelige absolut skal bruge det til noget andet er
> > det nemt nok at parse for billederne og erstatte dem tilbage igen.
Tag det fra en gammel rotte, det bliver nemt noget rod og der skal bare en
lille fejl eller uforudset hændelse til og så har du pludseligt mistet den
oprindelige tekst (det var der også eksempler på sidst vi diskuterede dette)
> Naturligvis er det en beslutning René skal tage ... og det kan da godt
> være, at det blot er mig, der er en (bitter) krakilsk nar, der er præget
af
> nogle design-principper på fra mit arbejde. Men i tilfældet med et forum,
> så er grundlaget for dette jo netop de data brugerne indsætter i en
> database. Disse da vil jeg blot være forbasket forsigtig med at rette for
> meget i.
Hvorfor kalde det en (bitter) krakilsk nar når du kan kalde det at: "Sole
dig i din erfaring og lade din dyrt købte erfaring og bagklogskabens klare
lys skinne over ungdommen"?
> Og til René: Jeg kommer til at tænke på: Du laver jo i forvejen en replace
> () med linieskift (<br>) ... noget der trods alt må være langt flere af
end
> smileys ... er du sikker på det er din smiley-replace, der koster knapper
i
> din processor ?
Det er ikke antallet af erstatninger der foretages der koster kræfter men
antallet af gange erstat (Replace) funktionen kaldes.
Til René:
Ja, det lyder lidt voldsomt at det skulle være dine replace-kald der gør at
din side koster kræfter, men det kan dog godt være, specielt hvis der er
mange hits og hvis du behandler store mængder data hver gang. .
Men det er nok nærmere fordi dit databaseudtræk skal hive mange data:
1) Har du fornuftige indekser på din database? Indekser på de felter du
udtrækker efter og de felter du sorterer efter? Har du fornuftige indekser
til dine Joins?
2) Laver du udtrækket af de poster der skal vises ved eksekvering een SQL
forespørgsel, eller bruger du en SQL forespørgsel pr post?
Nå nu gætter jeg, hvis du vil have hjælp til at optimere din kode må vi se
noget kode.
MVH
Allan Ebdrup
www.ti-fire.dk
| |
Rene' Godskesen (30-01-2002)
| Kommentar Fra : Rene' Godskesen |
Dato : 30-01-02 12:00 |
|
"Allan Ebdrup" <ebdrup@ti-fire.dk> skrev i en meddelelse
> 1) Har du fornuftige indekser på din database? Indekser på de felter du
> udtrækker efter og de felter du sorterer efter? Har du fornuftige indekser
> til dine Joins?
> 2) Laver du udtrækket af de poster der skal vises ved eksekvering een SQL
> forespørgsel, eller bruger du en SQL forespørgsel pr post?
>
> Nå nu gætter jeg, hvis du vil have hjælp til at optimere din kode må vi se
> noget kode.
Jeg henter data ud med denne sætning :
strSQL = "SELECT *, Format$([date],'dd/mm/yyyy') AS FormDate,
Format$([date],'hh:mm') AS FormTime FROM Entries WHERE (ReplyId = " &
Request("Id") & ") OR (ID = " & Request("Id") & ") ORDER BY ID"
Den bruges EN gang for at vise hele tråden..
Jeg bruger så Rs.MoveNext for at 'køre' ned gennem indlæggene...
Mht. indekser så er det vist gået min næse forbi
Kan du uddybe det?
Alt der kan optimere min kode er velkommen
Rene'
| |
|
|