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

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
DHTML hastighedskontrol
Fra : Jørgen Farum Jensen


Dato : 06-09-06 19:53

Jeg er ved at opdatere mine efterhånden /meget/ gamle
artikler om dynamisk HTML, og støder så på en uregel-
mæssighed, jeg ikke kan forklare.

Problemet er fremstillet på siden
http://localhost/x/fastmover.php

I praksis er det næppe særligt afgørende, men
det ville være rart at vide hvad forklaringen er.
--

Med venlig hilsen

Jørgen Farum Jensen
http://www.webdesign101.dk
..

 
 
Jørgen Farum Jensen (06-09-2006)
Kommentar
Fra : Jørgen Farum Jensen


Dato : 06-09-06 20:26

Jørgen Farum Jensen skrev:
> Jeg er ved at opdatere mine efterhånden /meget/ gamle
> artikler om dynamisk HTML, og støder så på en uregel-
> mæssighed, jeg ikke kan forklare.
>
> Problemet er fremstillet på siden
> http://localhost/x/fastmover.php
>
> I praksis er det næppe særligt afgørende, men
> det ville være rart at vide hvad forklaringen er.

UPS! Referencen skulle naturligvis være
http://www.webdesign101.dk/x/fastmover.php

--

Med venlig hilsen

Jørgen Farum Jensen
http://www.webdesign101.dk
..

Jens Gyldenkærne Cla~ (07-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-09-06 10:31

Henrik Stidsen skrev:

> Jeg syns ikke jeg kan se nogen uregelmæssigheder - har testet
> i IE (6.0), Firefox (1.5) og Opera (9).

Samme her. Dog hakker bevægelsen somme tider, men det er vist mest
et spørgsmål om hvor belastet computeren er.

Prøv evt. at sætte en timer på scriptet så man kan se hvor lang tid
det tager at køre en tur. Du kan jo lade scriptet skrive tiden på
siden (evt. både en sidste tid og en gennemsnitstid for alle
kørsler).

En sjov detalje: Hvis man klikker på returknappen før kassen er
kommet helt til højre, vender den om og fortsætter ud over margen i
venstre side (tilsvarende kan man få kassen til at forsvinde til
højre ved at klikke glid efter retur). Det er ikke sikkert at det
gør noget, men det kan formentlig forhindres hvis det er ønskeligt.
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Jørgen Farum Jensen (07-09-2006)
Kommentar
Fra : Jørgen Farum Jensen


Dato : 07-09-06 11:20

Jens Gyldenkærne Clausen skrev:
> Henrik Stidsen skrev:
>
>> Jeg syns ikke jeg kan se nogen uregelmæssigheder - har testet
>> i IE (6.0), Firefox (1.5) og Opera (9).
>
> Samme her. Dog hakker bevægelsen somme tider, men det er vist mest
> et spørgsmål om hvor belastet computeren er.
>
> Prøv evt. at sætte en timer på scriptet så man kan se hvor lang tid
> det tager at køre en tur. Du kan jo lade scriptet skrive tiden på
> siden (evt. både en sidste tid og en gennemsnitstid for alle
> kørsler).

Tak til jer begge.

Problemet, som ikke er særlig stort, er, at hastigheden
helt åbenbart er forskellig i Firefox og IE, det vil sige,
at et JavaScript millisekund ikke er det samme i de to
browsere. Og kan det være rigtigt?

Og en timer, der benytter den samme tidtagermekanisme,
vil i sådan et tilfælde vise det samme subjektive resultat,
i det aktuelle tilfælde 400px/4px*10msek = 1sek.

> En sjov detalje: Hvis man klikker på returknappen før kassen er
> kommet helt til højre, vender den om og fortsætter ud over margen i
> venstre side (tilsvarende kan man få kassen til at forsvinde til
> højre ved at klikke glid efter retur). Det er ikke sikkert at det
> gør noget, men det kan formentlig forhindres hvis det er ønskeligt.

God observation. Det føjer jeg ind i artiklen, når jeg skal
gøre den færdig.


--

Med venlig hilsen

Jørgen Farum Jensen
http://www.webdesign101.dk
..

Jens Gyldenkærne Cla~ (07-09-2006)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-09-06 11:49

Jørgen Farum Jensen skrev:

> Problemet, som ikke er særlig stort, er, at hastigheden
> helt åbenbart er forskellig i Firefox og IE,

Det har jeg svært ved at afgøre sådan som siden ser ud nu. Hvis man
skal undersøge det nærmere, kan du evt. lave en udgave der kører 10
gange frem og tilbage - så kan man med stopur tage tid i
forskellige browsere og sammenligne (på min computer er forskellen
mellem browserne ikke stor nok til at jeg vil kunne aflæse det på
en enkelt tur).

En anden mulighed er at lave en bevægelse der svarer til
sekundviseren på et ur (altså med 1 sekund mellem hvert yderpunkt).
Så er det let at afgøre om den kommer ud af sync hvis man har et ur
at kigge på.


> det vil sige, at et JavaScript millisekund ikke er det samme i de
> to browsere.

Jeg tror ikke at det er grunden til forskellen. Hvis du har et
meget kort interval mellem gentagne udførsler af en funktion (her 4
ms), risikerer du at funktionen ikke kan nå at blive færdig før den
skal kaldes igen - og det kan give en forsinkelse.

Jeg ved ikke hvor lang tid din slide-funktion bruger på en
flytning, men hvis det kommer op i nærheden af dit 4 ms-interval,
kan det give problemer. Prøv evt. at se om forskellen er anderledes
ved større eller mindre intervaller.

Det er muligt at du kan hente noget performance (og dermed slippe
for forsinkelserne) ved at gemme referencen til objektet globalt.
Som scriptet er lavet nu, skal det ved hvert eneste kald finde
objektet via getElementById 2 gange. Hvis browseren ikke selv kan
"cache" sådan en objektvariabel, bliver det til rigtig mange
søgninger i DOM-træet.


> Og en timer, der benytter den samme tidtagermekanisme,
> vil i sådan et tilfælde vise det samme subjektive resultat,
> i det aktuelle tilfælde 400px/4px*10msek = 1sek.


Det er jeg ikke sikker på - har du prøvet? Men hvis det er
tilfældet, kan man benytte en ekstern timer (kald en serverbaseret
timer når scriptet starter og når det slutter - fx i en iframe
eller i et pop op-vindue).
--
Bolig søges. Andel eller leje i Emdrup, Nordvest, Nørrebro, Søborg
eller Brønshøj, max 6000 pr. måned.
Kontakt pr. mail - nospam(at)gyros.dk
Jens Gyldenkærne Clausen

Stig Johansen (08-09-2006)
Kommentar
Fra : Stig Johansen


Dato : 08-09-06 06:43

Jens Gyldenkærne Clausen wrote:

> Jørgen Farum Jensen skrev:
>> det vil sige, at et JavaScript millisekund ikke er det samme i de
>> to browsere.
>
> Jeg tror ikke at det er grunden til forskellen. Hvis du har et
> meget kort interval mellem gentagne udførsler af en funktion (her 4
> ms), risikerer du at funktionen ikke kan nå at blive færdig før den
> skal kaldes igen - og det kan give en forsinkelse.

Den normale maximale opløsning på timere i Windows er på ca. 9 ms.
Der findes dog nogle lowlevel API'er, der giver en større opløsning.

Udover de ting som Jens har påpeget, kan det tænkes, at browserne
implementerer forskellige timere i deres javascript fortolkere.

--
Med venlig hilsen
Stig Johansen

Henrik Stidsen (07-09-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 07-09-06 08:20

Jørgen Farum Jensen skrev:
> http://www.webdesign101.dk/x/fastmover.php

Jeg syns ikke jeg kan se nogen uregelmæssigheder - har testet i IE
(6.0), Firefox (1.5) og Opera (9).


Christoffer \(Guide\~ (07-09-2006)
Kommentar
Fra : Christoffer \(Guide\~


Dato : 07-09-06 17:29


"Jørgen Farum Jensen" <jfjenzen@yahoo.dk> skrev i en meddelelse
news:44ff1918$0$12645$edfadb0f@dread14.news.tele.dk...
> Jeg er ved at opdatere mine efterhånden /meget/ gamle
> artikler om dynamisk HTML, og støder så på en uregel-
> mæssighed, jeg ikke kan forklare.
>
> Problemet er fremstillet på siden
> http://localhost/x/fastmover.php
>
> I praksis er det næppe særligt afgørende, men
> det ville være rart at vide hvad forklaringen er.
Ang. tiden kan jeg ikke lige give dig en forklaring, men har du set hvad der
sket hvis man trykker "glid kasse" og inden den er rykket på plads trykker
"glid kasse retur"?
Effekten er forstærket i IE.



Ryan Kristensen (07-09-2006)
Kommentar
Fra : Ryan Kristensen


Dato : 07-09-06 20:03

On Wed, 06 Sep 2006 20:53:15 +0200, Jørgen Farum Jensen
<jfjenzen@yahoo.dk> wrote:

> Jeg er ved at opdatere mine efterhånden /meget/ gamle
> artikler om dynamisk HTML, og støder så på en uregel-
> mæssighed, jeg ikke kan forklare.

Prøv at tjekke CPU forbruget. Hos mig - i IE - ligger det omkring 4-7%,
hvis jeg holder funktionen kørende konstant.
I Mozilla og Opera kommer CPU-forbruget op i nærheden af 100%, dette kunne
være årsagen til, at den kører langsommere i disse browsere.
Har du i øvrigt kigget på setInterval og clearInterval? Så vidt jeg ved,
så anbefales det at bruge disse til den slags funktioner. Det skulle vidst
nedsætte CPU-forbruget.

--
Ryan

Martin (08-09-2006)
Kommentar
Fra : Martin


Dato : 08-09-06 17:32

Jørgen Farum Jensen wrote:
> Jeg er ved at opdatere mine efterhånden /meget/ gamle
> artikler om dynamisk HTML, og støder så på en uregel-
> mæssighed, jeg ikke kan forklare.
>
> Problemet er fremstillet på siden
> http://localhost/x/fastmover.php
>
> I praksis er det næppe særligt afgørende, men
> det ville være rart at vide hvad forklaringen er.

Hvis jeg trykker 2 gange "glid kasse" lige efter hinanden, så kører
boksen hurtigere end hvis jeg kun trykkede 1 gang.

Desuden så kan man få den til at køre enormt hurtigt, hvis man trykker
på "glid kasse" og "glid kasse retur" en masse gange efter hinanden,
plus den så farer MEGET langt ud af billedet :)

Hvis du skulle lave en timer, så ville jeg nok tage og lave timeren i
PHP, da den jo bruger serverens CPU, for jeg tror netop det er hos
brugerens CPU forbrug, der er problemet med forskellige hastigheder på
boksen.

Jørgen Farum Jensen (10-09-2006)
Kommentar
Fra : Jørgen Farum Jensen


Dato : 10-09-06 17:33

Martin skrev:
> Jørgen Farum Jensen wrote:

> Hvis du skulle lave en timer, så ville jeg nok tage og lave timeren i
> PHP, da den jo bruger serverens CPU, for jeg tror netop det er hos
> brugerens CPU forbrug, der er problemet med forskellige hastigheder på
> boksen.

If only I knew how...

Tak for input til Martin og alle øvrige.
Jeg kan se, jeg skal gentænke hele sagen.

--

Med venlig hilsen

Jørgen Farum Jensen
http://www.webdesign101.dk
..

Henrik Stidsen (12-09-2006)
Kommentar
Fra : Henrik Stidsen


Dato : 12-09-06 13:36

Martin skrev:
> Hvis du skulle lave en timer, så ville jeg nok tage og lave timeren i
> PHP, da den jo bruger serverens CPU, for jeg tror netop det er hos
> brugerens CPU forbrug, der er problemet med forskellige hastigheder på
> boksen.

Hvordan laver man en clientside timer i et serverside sprog ? ;)


Søg
Reklame
Statistik
Spørgsmål : 177553
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste