- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Milyen videókártyát?
- Vezetékes FEJhallgatók
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Fujifilm X
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- 3D nyomtatás
- Nvidia GPU-k jövője - amit tudni vélünk
- Kormányok / autós szimulátorok topikja
- Hobby elektronika
-
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 arequestAnimationFramethrotlingol
- ha háttérben van a canvas, asetIntervalakkor is triggerel, míg arequestAnimationFramenem (nem eszi feleslegesen az erőforrásokat). Ezzel ellentétben a háttérben futósetIntervalszépen torlódik, és Ph-reklámokban is látható "rohanással" éri utol magát, amikor újra előtérbe kerül.
- arequestAnimationFramevisszaad 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
- PlayStation 5
- Fogyjunk le!
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Építő/felújító topik
- Milyen videókártyát?
- Vezetékes FEJhallgatók
- OnePlus 15 - van plusz energia
- Google Pixel topik
- Xiaomi 17 - még mindig tart
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- További aktív témák...
- Apple iPhone 13 128GB,Újszerű,Adatkabel,12 hónap garanciával
- Apple iPhone 13 Pro 128GB,Újszerű,Adatkabel,12 hónap garanciával
- ASUS Vivobook Pro 15 (Ryzen 5 5600H, 16GB RAM, RTX 3050 Ti, 512GB SSD)
- Apple iPhone 14 Pro 128GB,Újszerű,Dobozaval,12 hónap garanciával
- Honor 200 Pro / 12/512GB / Kártyafüggetlen / 12Hó Garancia
- AKCIÓ! ASRock H410M i5 10400F 16GB DDR4 512GB SSD GTX 1080 Ti 11GB Zalman T3 Plus Gigabyte 650W
- LG 86QNED913PA / Mini LED / 86" - 217 cm / 4K UHD / 120Hz & 3ms / 900 Nits / HDR Dolby / HDMI 2.1
- 27% - Acer EK241Y IPS Monitor! 1920x1080 / 100Hz / 1ms / Adaptive Sync
- Apple iPhone 13 Pro Max 512GB,Átlagos,Dobozaval,12 hónap garanciával
- 27% - Lenovo LOQ i5-14400F / 32GB DDR5 / 1TB SSD / RTX 5060! BeszámítOK!
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



ez a halálom, amikor valaki a legalapabb dolgot is fogalmatlanul használja.

