- Megnyitotta kapuit a hardverpláza
- Projektor topic
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Gaming notebook topik
- Amlogic S905, S912 processzoros készülékek
- Raspberry Pi
- Először égett le egy újságnál a GeForce RTX 5090
- 5.1, 7.1 és gamer fejhallgatók
- TCL LCD és LED TV-k
- Soundbar, soundplate, hangprojektor
-
PROHARDVER!
JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Új hozzászólás Aktív témák
-
martonx
veterán
válasz
Tomi_78 #7772 üzenetére
Két dolog:
1. tanuljuk már meg végre, hogy mi a különbség a let és const között
ez a halálom, amikor valaki a legalapabb dolgot is fogalmatlanul használja.
2. nekem ez a megoldás sokkal szimpatikusabb: https://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe minden olyan megoldástól a hideg kiráz, ami animációval kapcsolatos és settimeout / setinterval van benne. Ezt a megoldás még kombinálnám annyival, hogy magát az animációt kiszervezném egy külön worker thread-be, mert ezekben az esetekben az a gond, hogy ha komplex az animáció / nagyon gyenge a futtató vas, akkor lehet, hogy több frame-et is át fogsz lépni, mint eredetileg tervezted. -
Rickeffe
aktív tag
válasz
Tomi_78 #7745 üzenetére
https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
The number of callbacks is usually 60 times per second, but will generally match the display refresh rate in most web browsers as per W3C recommendation.Böngészőtöl függ.
Először végeznék egy mérést ami megadja az aktuális kb fps-t. Aztán ahhoz viszonyítanék. -
martonx
veterán
válasz
Tomi_78 #7741 üzenetére
a requestAnimation frame a képernyőfrissítéshez igazodik, nem a gép sebességéhez. Simán lehet, hogy a te gyengébb gépednek 120Hz-es kijelzője van, a másik erősebb gépnek meg 60Hz-es. Ebben az esetben nálad 120fps-t fog eredményezni a requestAnimationFrame, a másik gépen meg 60fps-t.
A SetInterval felejtős, teljesen megbízhatatlan.
requestAnimationframe-nél így tudod fixálni az fps-t, hogy mindenhol azonos sebességet adjon: https://stackoverflow.com/questions/19764018/controlling-fps-with-requestanimationframe
Nyilván fixálni csak lefelé tudod, azaz 60fps-től lefelé. -
válasz
Tomi_78 #7741 üzenetére
Szia!
A requestAnimationFrame lényege, hogy mindenhol ugyanolyan sebességgel fusson. Az, hogy ott lassabban futott vsz csak valami lokális ok miatt lehetett (pl sok tab, máshol is használta valami aktívan a grafikus drivert, vagy valami egyéb). Az is lehet, hogy nem volt lassabb, csak voltak olyan dolgok, ami miatt más volt a limitáló és amiatt tűnt lassabbnak.
írasd ki a képernyő szélére az fps-t, és látni fogod, hogy tényleg lassabb-e. -
-
-
-
válasz
Tomi_78 #7603 üzenetére
Nem ez nagyjából
setInterval(17)
-tel egyenlő, de
- ha a szkripted futása több, mint 16 ms, akkor összetorlódnak az eseményeksetInterval
-nál, míg arequestAnimationFrame
throtlingol
- ha háttérben van a canvas, asetInterval
akkor is triggerel, míg arequestAnimationFrame
nem (nem eszi feleslegesen az erőforrásokat). Ezzel ellentétben a háttérben futósetInterval
szépen torlódik, és Ph-reklámokban is látható "rohanással" éri utol magát, amikor újra előtérbe kerül.
- arequestAnimationFrame
visszaad egyrequestID
-t, amivel könnyebb szüneteltetni az animációt, mint asetInterval
-lal.
- arequestAnimationFrame
-ben regisztrált callback megkapja az aktuális időt (ha van a callback függvénynek argumentuma), így nem kell a függvényben szenvedni az előállításával -
-
-
-
gary89
csendes tag
válasz
Tomi_78 #7496 üzenetére
- a szamlal function üres, nem csinál semmit sem, így undefined lesz JS oldalon a valami.
- az extra // bezavarhat html parseoláskor (bár a modern böngészők tudnak vele együtt élni)
- a return $num; okozhatja a furcsa viselkedést, ott egy ilyen kellene, hogy helyes legyen:echo 'return '. $num . ';' ;
így a szamol helyes értékkel térne vissza és később nem kellene az echo $num -
válasz
Tomi_78 #7488 üzenetére
Értem.
Azért nem írja ki, mert a $num változót az if szkópján belül deklarálod.
Tegyél egy $num=0 értékadást az if elé, így elérhető lesz az ifen kívülről is.De ha rám hallgatsz, becsomagolod az egészet egy szamlal() függvénybe, ami elvégzi a kívánt műveletet, majd a végén visszaadja a $num értékét.
Ezután csak meg kell hívnod a.függvényed ahol számlálni akarsz, esetedben a javascript tagon belül, és így nem kell aggódnod a változó szkópok miatt, és a globális névteret sem szennyezed be.
Tényleg el kellene döntened, hogy user szintű vagy globális számlálót akarsz, mert a jelenlegi megvalósítás az egy globális számlálót valósít meg, és az összes usered ugyanazt a számlálót fogja növelni.
Persze, ha ez egy látogató számláló akkor ez a kívánt viselkedés.
Miért van szükséged javascriptre?
Ezt az értéket simán kiírhatnád a bodyba is PHPvel.Bocsi a hiányzó formázásért, telefonról vagyok.
-
válasz
Tomi_78 #7486 üzenetére
Mit jelent az, hogy nem működik?
Nem ír fájlba, nem számol, hibát ad, nem írja ki a JS amit szeretnél?Ha csak a kliensnek a saját számlálóját kell kezelni akkor JSsel cookieba vagy local storagebe el tudod menteni.
Ha kell a szerveren is az adat akkor marad amit csináltál, bár célszerű lenne MySQLbe tenni az adatot, illetve ez nem a PHP topik.
-
cSuwwi
senior tag
válasz
Tomi_78 #7449 üzenetére
Ha "nem erti" akkor nem huzza be a js filet (undefined lesz), eleresi ut helyes?
Ha bongeszos a cucc, akkor chromeban nyitsz egy console-t, es megnezed a net fulon egyaltalan betolti-e es 200-as valasszal, majd ha beirod a consolra hogy Howl() nem undefinedet kene adnia.
Ha react/react native vagy hasonlo alapu akkor a debuggerben latod mi a gondja.1 perc alatt osszedobhato vele egy js player: https://jsfiddle.net/h2y0zsg6/
Új hozzászólás Aktív témák
Hirdetés
- Megnyitotta kapuit a hardverpláza
- Villanyszerelés
- Projektor topic
- Akkor is nehéz dolga lesz az Intelnek, ha részesedést vásárol benne az USA
- Kecskemét és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kerékpárosok, bringások ide!
- Gitáros topic
- Peugeot, Citroën topik
- Gaming notebook topik
- További aktív témák...
- Lenovo M10 HD 32GB, Újszerű, 1 Év Garanciával
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- HIBÁTLAN iPhone SE 2020 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS2192, 100% Akkumulátor
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- Honor X7 fekete 128GB 12 hónap jótállással!
Állásajánlatok
Cég: FOTC
Város: Budapest