-
7800 - 7701
10361 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
-
Frissítve: 2014-02-25 10:20 Téma összefoglaló
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
-
K1nG HuNp
őstag
Ha letiltod a javascriptet a bongeszodben akkor az SPA-k konkretan meghalnak mig a next es gatsby mukodik + nem index.html lesz az eredmeny, nezd meg a bongeszod network tabjen, egyenkent cachelheto kulonallo html fajljaid vannak, pont mintha kezzel irtad volna oket.
Tultargyaltuk
-
bandi0000
nagyúr
Nem tudtok ajánlani valami jó és egyszerű Text editort?
Kb annyi és olyan elem kellene mint itt a ph-n, viszont nem bootstrap alapú, mert Angular Materialt használom
Korábban martonx ajánlotta a CkEditor-t, de kicsit overkillnek érzem ehhez a projekthez,plusz elég sokat bogarászok mire megtalálom hogy kell 1-1 beállítást megcsinálni
-
Zedz
addikt
Mindig egy index.html lesz az eredmeny. Az, hogy mondjuk nextjsben kulon fileok jelentik a routingot, az megint mas. Angularban is meg tudod csinalni ezt a fajta codesplittinget, es ott a routing az teljesen kulonbozik.
-
K1nG HuNp
őstag
En azt tartom SPA-nak aminek egy index.js endpointja van es semmi mas
A fentebb leirtaknak nem egy van. -
Silεncε
őstag
Nem lesz SPA, az SPA-kban a routingot a React oldja meg, a Next.js es Gatsby eseteben kulon fajlod van minden pathodra.
Pl: SPAnal a weboldal.hu/asd eleresehez le kell jonnie a teljes hobelebancnak mire beroffen a router es atrak a /asdra.
Az gatsbynal van alapbol fajlod a /asd endpointra amit egybol tudsz lekuldeni, nextnel is same, esetleg ha SSR-t valasztottal akkor varni kell meg a szerver megcsinalja es lekuldi
Az hogy hidratalas utan lesz meno JS routered amiel weblap ujratoltes nelkul tudsz maszkalni az nem azt jelenit hogy SPA lenne az oldalad, az a React velejaroja
Az SPA lényege pont az, hogy nem mozdulsz el igazából az index.html-ről de te úgy látod, mintha navigálnál
-
Zedz
addikt
Nem lesz SPA, az SPA-kban a routingot a React oldja meg, a Next.js es Gatsby eseteben kulon fajlod van minden pathodra.
Pl: SPAnal a weboldal.hu/asd eleresehez le kell jonnie a teljes hobelebancnak mire beroffen a router es atrak a /asdra.
Az gatsbynal van alapbol fajlod a /asd endpointra amit egybol tudsz lekuldeni, nextnel is same, esetleg ha SSR-t valasztottal akkor varni kell meg a szerver megcsinalja es lekuldi
Az hogy hidratalas utan lesz meno JS routered amiel weblap ujratoltes nelkul tudsz maszkalni az nem azt jelenit hogy SPA lenne az oldalad, az a React velejaroja
lesz meno JS routered amiel weblap ujratoltes nelkul tudsz maszkalni az nem azt jelenit hogy SPA lenne az oldalad
Dehogynem, attol lesz SPA, hogy egy "shellben" folyamatosan csereled a tartalmat, dinamikusan, ujratoltes nelkul. Az, hogy ez a cucc most CSR vagy SSR, az mindegy. -
K1nG HuNp
őstag
Nem lesz SPA, az SPA-kban a routingot a React oldja meg, a Next.js es Gatsby eseteben kulon fajlod van minden pathodra.
Pl: SPAnal a weboldal.hu/asd eleresehez le kell jonnie a teljes hobelebancnak mire beroffen a router es atrak a /asdra.
Az gatsbynal van alapbol fajlod a /asd endpointra amit egybol tudsz lekuldeni, nextnel is same, esetleg ha SSR-t valasztottal akkor varni kell meg a szerver megcsinalja es lekuldi
Az hogy hidratalas utan lesz meno JS routered amiel weblap ujratoltes nelkul tudsz maszkalni az nem azt jelenit hogy SPA lenne az oldalad, az a React velejaroja
-
Zedz
addikt
Ezt miota hazakuldtek Pestrol korona miatt es szar a netem hatvanyozottan ateltem:
Egy weboldalnak nem kellene masodpercekig full page loadereket a kepedbe tolnia. Elkepesztoen rosszak a First Meaningful Paint es Time to Interactive szamok az osszes SPA-nal.
Szandekosan irtam, weboldalt, a webappoknak termeszetesen nagyon nincs mas lehetoseguk, ott szukseg van a teljes js bundlera elso megjelenites elott, bar a PWA ott is eleg jo megoldast kinal, lasd: twitter.
Maradva a CRA-nal: miert szednel le olyan JS kodot ami olyan aloldalhoz tartozik amit lehet sosem latogatsz meg, es teszed ezt minden oldallekeres soran?
A Gatsby es a Next is ezt ugy kuszoboli ki, hogy egyreszt aloldalankent code splittel, masreszt az alapvetes a statikus html kesobbi rehidratalasa reactel, azaz lemegy az usernek a skeleton, a time to first byte teljesen megegyezik azzal mintha semmi JS kod nem lenne az oldalon, majd amint vege a rehidratalasnak ott vagy egy teljes Reactel
tisztazva:
Server Side Rendering: http keresre a szerver on-demand legeneralja a html-t es lekuldni.
Static Site Generation: build idoben, azaz otthon a te gepeden lefut a react statikus html, js, css fajlokba exportalas es ezt te csak felrakod CDNre.Mindket esetben ugyan az a vegeredmeny, eloszor egy html filet kapsz jobb esetben beinjektalt critical css-el, ez valszeg ki is teszi az elso TCP kort, es csak kesobb kapod meg a JS kodod ami megint legelso korben rehidratal.
Azt ugye vagod, hogy a Next is SPA lesz vegul?
Az SSR csak az elso loadnal segit. -
K1nG HuNp
őstag
Ezt miota hazakuldtek Pestrol korona miatt es szar a netem hatvanyozottan ateltem:
Egy weboldalnak nem kellene masodpercekig full page loadereket a kepedbe tolnia. Elkepesztoen rosszak a First Meaningful Paint es Time to Interactive szamok az osszes SPA-nal.
Szandekosan irtam, weboldalt, a webappoknak termeszetesen nagyon nincs mas lehetoseguk, ott szukseg van a teljes js bundlera elso megjelenites elott, bar a PWA ott is eleg jo megoldast kinal, lasd: twitter.
Maradva a CRA-nal: miert szednel le olyan JS kodot ami olyan aloldalhoz tartozik amit lehet sosem latogatsz meg, es teszed ezt minden oldallekeres soran?
A Gatsby es a Next is ezt ugy kuszoboli ki, hogy egyreszt aloldalankent code splittel, masreszt az alapvetes a statikus html kesobbi rehidratalasa reactel, azaz lemegy az usernek a skeleton, a time to first byte teljesen megegyezik azzal mintha semmi JS kod nem lenne az oldalon, majd amint vege a rehidratalasnak ott vagy egy teljes Reactel
tisztazva:
Server Side Rendering: http keresre a szerver on-demand legeneralja a html-t es lekuldni.
Static Site Generation: build idoben, azaz otthon a te gepeden lefut a react statikus html, js, css fajlokba exportalas es ezt te csak felrakod CDNre.Mindket esetben ugyan az a vegeredmeny, eloszor egy html filet kapsz jobb esetben beinjektalt critical css-el, ez valszeg ki is teszi az elso TCP kort, es csak kesobb kapod meg a JS kodod ami megint legelso korben rehidratal.
-
martonx
veterán
én
let-es vagyok, kevesebb karakter :pRemélem tetszenek kattingatni a Next.js-t, eleg durva dolgok jottek most

En most greenlightot kaptam cegnel, hogy osszedobjak egy alap projektet, amivel levaltanam a mostani korosodo boilerplatet ami meg jQuerys alapokon nyugszik mivel rajottunk, hogy mire behuzzuk a jQueryt es azt a par libet ami meg kell ugyan ott van a JS footprintunk mintha egy reactet tolnank, cserebe kezzel kell forditani a css-t es picit kaka a dev experience.
Annak nagyon orultem pl, hogy kezd leesni embereknek, hogy az SPA szar UX.
Kb jottunk egy teljes kort, en pl sosem irtam phpt de onboarding hetemen abban kellett site buildelnem, es volt valami elegancia abban hogy felpakolsz egy php filet ftpre es fut es atom gyors 123kB js nelkul is
CRA-t pl mar ne hasznaljon senki, aki arra vetemedne, hogy mostanaban Reactozik, es mostmar a Gatsbyba is szerintem felesleges sok idot foccolni, tud mindent a Next 9.3 ota, kissebb bundlesizeval, kb 0 proprietary dologgal es tobb lehetoseggel.
"es volt valami elegancia abban hogy felpakolsz egy php filet ftpre es fut es atom gyors 123kB js nelkul is" - a PHP előnyei kb. itt meg is állnak

Amúgy meg a server side rendering mindig is nagyságrendekkel gyorsabb volt, nem véletlenül erőltetik majdnem mindenhol az SSR-t. -
Zedz
addikt
én
let-es vagyok, kevesebb karakter :pRemélem tetszenek kattingatni a Next.js-t, eleg durva dolgok jottek most

En most greenlightot kaptam cegnel, hogy osszedobjak egy alap projektet, amivel levaltanam a mostani korosodo boilerplatet ami meg jQuerys alapokon nyugszik mivel rajottunk, hogy mire behuzzuk a jQueryt es azt a par libet ami meg kell ugyan ott van a JS footprintunk mintha egy reactet tolnank, cserebe kezzel kell forditani a css-t es picit kaka a dev experience.
Annak nagyon orultem pl, hogy kezd leesni embereknek, hogy az SPA szar UX.
Kb jottunk egy teljes kort, en pl sosem irtam phpt de onboarding hetemen abban kellett site buildelnem, es volt valami elegancia abban hogy felpakolsz egy php filet ftpre es fut es atom gyors 123kB js nelkul is
CRA-t pl mar ne hasznaljon senki, aki arra vetemedne, hogy mostanaban Reactozik, es mostmar a Gatsbyba is szerintem felesleges sok idot foccolni, tud mindent a Next 9.3 ota, kissebb bundlesizeval, kb 0 proprietary dologgal es tobb lehetoseggel.
az SPA szar UX
Miert? -
K1nG HuNp
őstag
én
let-es vagyok, kevesebb karakter :pRemélem tetszenek kattingatni a Next.js-t, eleg durva dolgok jottek most

En most greenlightot kaptam cegnel, hogy osszedobjak egy alap projektet, amivel levaltanam a mostani korosodo boilerplatet ami meg jQuerys alapokon nyugszik mivel rajottunk, hogy mire behuzzuk a jQueryt es azt a par libet ami meg kell ugyan ott van a JS footprintunk mintha egy reactet tolnank, cserebe kezzel kell forditani a css-t es picit kaka a dev experience.
Annak nagyon orultem pl, hogy kezd leesni embereknek, hogy az SPA szar UX.
Kb jottunk egy teljes kort, en pl sosem irtam phpt de onboarding hetemen abban kellett site buildelnem, es volt valami elegancia abban hogy felpakolsz egy php filet ftpre es fut es atom gyors 123kB js nelkul is
CRA-t pl mar ne hasznaljon senki, aki arra vetemedne, hogy mostanaban Reactozik, es mostmar a Gatsbyba is szerintem felesleges sok idot foccolni, tud mindent a Next 9.3 ota, kissebb bundlesizeval, kb 0 proprietary dologgal es tobb lehetoseggel.
-
Silεncε
őstag
-
Zedz
addikt
-
Rimuru
veterán
Rustban ha let-tel hozol letre valtozot az is immutable... milyen szornyu nyelv, nem ugy mukodik mint javascriptben..
oh wait...
-
Silεncε
őstag
visszaterve picit meg a let es const reszelgetesre: a constot is teljesen feleslegesen hasznaljak az emberek
az egyetlen hely ahol azt fogja csinalni a const mint amire szamitasz mas nyelvekbol az a const SOME_VALUE = 12;aconst obj = {};pontosan ugyan ugy modositgathato mint a let-es baratja, cserebe jo megteveszto
Hát lehet én dolgozok régóta már JS (TS)-el, de nekem tök egyértelmű, hogy maga az object ilyenkor nem lesz immutable.
-
cattus
addikt
Más, nem szkripnyelvekben a const általában fordítás idejú konstanst jelöl, tehát utána a belső állapota sem változhat meg (pl. objectek esetében) az első értékadás után. Ugyanezt JS-ben az
Object.freeze()tudja elérni. -
disy68
aktív tag
visszaterve picit meg a let es const reszelgetesre: a constot is teljesen feleslegesen hasznaljak az emberek
az egyetlen hely ahol azt fogja csinalni a const mint amire szamitasz mas nyelvekbol az a const SOME_VALUE = 12;aconst obj = {};pontosan ugyan ugy modositgathato mint a let-es baratja, cserebe jo megteveszto
Ez azért így nem igaz. A const-al létrehozott változó referenciája nem lesz változtatható, viszont ettől a változó nem válik immutable-é, ez ahogy tudom más nyelveknél is így van.
Fiddle -
martonx
veterán
visszaterve picit meg a let es const reszelgetesre: a constot is teljesen feleslegesen hasznaljak az emberek
az egyetlen hely ahol azt fogja csinalni a const mint amire szamitasz mas nyelvekbol az a const SOME_VALUE = 12;aconst obj = {};pontosan ugyan ugy modositgathato mint a let-es baratja, cserebe jo megteveszto
Jó, hát a javascript furi nyelv (direkt nem írtam szart
), de ettől még írhatunk js-el is normális kódot.
-
K1nG HuNp
őstag
visszaterve picit meg a let es const reszelgetesre: a constot is teljesen feleslegesen hasznaljak az emberek
az egyetlen hely ahol azt fogja csinalni a const mint amire szamitasz mas nyelvekbol az a const SOME_VALUE = 12;aconst obj = {};pontosan ugyan ugy modositgathato mint a let-es baratja, cserebe jo megteveszto
-
Aureal
őstag
Egy [object HTMLEmbedElement] tartalmát hogy tudom js-ben lekérni, ha szöveget tartalmaz?
-
martonx
veterán
Szia!
1. Ahogy én tudom (nem régóta és meglehet, rosszul), a különbség a let és a var között (e kettő alapján néztem utána) az, hogy a var egy blokkon belül érvényes, tehát ugyanolyan változó már nem lehet azon belül, míg a let esetében ilyen megkötés nincsen.
2. Megcsináltam most az általad ajánlott megoldás alapján; az én gépemen jól működik, tehát remélem, mindenhol így lesz. Csak azt nem értem, hogy a startTime változóra mi szükség van, hiszen azon kívül, hogy egyszer értéket kap, nem használatos?
Tehát itt a kód a játékomból:var fps, jateksebessege, startTime, most, akkor, eltelt;// initialize the timer variables and start the animationstartAnimating(120);function startAnimating(fps) {jateksebessege = 1000 / fps;akkor = Date.now();startTime = akkor;jatekciklus();};function jatekciklus() {requestAnimationFrame(jatekciklus);most = Date.now();eltelt = most - akkor;if (eltelt > jateksebessege) {akkor = most - (eltelt % jateksebessege);//...a program többi, rajzoló része...Ki beszélt var-ról? Starttime akkor lehet, hogy nem is kell. 120 fps felejtős. Jó lenne a magyar változó neveket elfelejteni.
-
Silεncε
őstag
-
Rimuru
veterán
-
Silεncε
őstag
Szia!
1. Ahogy én tudom (nem régóta és meglehet, rosszul), a különbség a let és a var között (e kettő alapján néztem utána) az, hogy a var egy blokkon belül érvényes, tehát ugyanolyan változó már nem lehet azon belül, míg a let esetében ilyen megkötés nincsen.
2. Megcsináltam most az általad ajánlott megoldás alapján; az én gépemen jól működik, tehát remélem, mindenhol így lesz. Csak azt nem értem, hogy a startTime változóra mi szükség van, hiszen azon kívül, hogy egyszer értéket kap, nem használatos?
Tehát itt a kód a játékomból:var fps, jateksebessege, startTime, most, akkor, eltelt;// initialize the timer variables and start the animationstartAnimating(120);function startAnimating(fps) {jateksebessege = 1000 / fps;akkor = Date.now();startTime = akkor;jatekciklus();};function jatekciklus() {requestAnimationFrame(jatekciklus);most = Date.now();eltelt = most - akkor;if (eltelt > jateksebessege) {akkor = most - (eltelt % jateksebessege);//...a program többi, rajzoló része...Csakhogy ő nem a var vs let-ről beszélt, hanem a let vs const-ról
-
Tomi_78
aktív tag
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.Szia!
1. Ahogy én tudom (nem régóta és meglehet, rosszul), a különbség a let és a var között (e kettő alapján néztem utána) az, hogy a var egy blokkon belül érvényes, tehát ugyanolyan változó már nem lehet azon belül, míg a let esetében ilyen megkötés nincsen.
2. Megcsináltam most az általad ajánlott megoldás alapján; az én gépemen jól működik, tehát remélem, mindenhol így lesz. Csak azt nem értem, hogy a startTime változóra mi szükség van, hiszen azon kívül, hogy egyszer értéket kap, nem használatos?
Tehát itt a kód a játékomból:var fps, jateksebessege, startTime, most, akkor, eltelt;// initialize the timer variables and start the animationstartAnimating(120);function startAnimating(fps) {jateksebessege = 1000 / fps;akkor = Date.now();startTime = akkor;jatekciklus();};function jatekciklus() {requestAnimationFrame(jatekciklus);most = Date.now();eltelt = most - akkor;if (eltelt > jateksebessege) {akkor = most - (eltelt % jateksebessege);//...a program többi, rajzoló része... -
martonx
veterán
Sziasztok ismét!
Módosítottam a játékom kódján egy kicsit, hogy - elvileg - minden számítógépen azonos sebességgel fusson, bár ezt még most nem tudom leellenőrizni, mivel pillanatnyilag nem vagyok ama "gyorsabb de a játékot lassabban futtató" gép közelében.
Ezért közzétenném itt a kódom ezt végző részét, hogy megnézhessétek és meg tudjátok mondani, hogy jó-e , ahogy csináltam.
Szóval szerintetek jó ez így? Az én gépemen simán fut. Akkor elvileg minden képfrissítési frekvencián jól működne?let jateksebessege = 100;function jatekciklus() {setTimeout(function() {requestAnimationFrame(jatekciklus);//a játékom fő kódja a rajzolással, stb.}, 1000 / jateksebessege);};requestAnimationFrame(jatekciklus);Egyébként innen puskáztam ki:https://www.kirupa.com/html5/animating_with_requestAnimationFrame.htmés annyit kellett átalakítanom rajta, hogy fentebb az utolsó sorba is be kellett szúrnom a requestAnimationFrame()-et, mert különben csak nagy fehérséget mutatott valamiért.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. -
Tomi_78
aktív tag
Sziasztok ismét!
Módosítottam a játékom kódján egy kicsit, hogy - elvileg - minden számítógépen azonos sebességgel fusson, bár ezt még most nem tudom leellenőrizni, mivel pillanatnyilag nem vagyok ama "gyorsabb de a játékot lassabban futtató" gép közelében.
Ezért közzétenném itt a kódom ezt végző részét, hogy megnézhessétek és meg tudjátok mondani, hogy jó-e , ahogy csináltam.
Szóval szerintetek jó ez így? Az én gépemen simán fut. Akkor elvileg minden képfrissítési frekvencián jól működne?let jateksebessege = 100;function jatekciklus() {setTimeout(function() {requestAnimationFrame(jatekciklus);//a játékom fő kódja a rajzolással, stb.}, 1000 / jateksebessege);};requestAnimationFrame(jatekciklus);Egyébként innen puskáztam ki:https://www.kirupa.com/html5/animating_with_requestAnimationFrame.htmés annyit kellett átalakítanom rajta, hogy fentebb az utolsó sorba is be kellett szúrnom a requestAnimationFrame()-et, mert különben csak nagy fehérséget mutatott valamiért. -
bandi0000
nagyúr
Szerintetek Angularba "komoly" appban mennyire állja meg a helyét az olyan megoldás, hogy egymásba ágyazom a regisztrációt és a beléptetést is
Ugye, úgy néz ki a dolog, hogy van egy dialog componemsem, abban pedig selectorral illesztem be a regisztráció vagy a bejelentkezés form komponensét
És most vettem észre, hogy visszafele nem tudok kommunikálni, tehát ha regisztrál a user, akkor se nem tudom átváltani a felületet login-re, és se nem tudok visszafele adni adatot
Így 1.0 verzióban azt csináltam, hogy egymásba ágyaztam a regisztrációnál a 2 service hívást, sikeres regisztráció után meghívja a beléptetést, de ez így elég hoki megoldásnak tűnik, pláne, hogy hibát se tudok kezelni, bár elvileg nem is lehetne, mert a regisztrációs adatokat használja beléptetésnél ism de akkor is
2.0 refatorba arra gondoltam, hogy akkor 1 dialog lenne és benne 2 divvel belerakva mindkét form, nyilván *ngIf-el elválasztva, és így talán normálisabban lehetne megoldani, de még ez se tűnik annyira jónak
Bocs a sok apró kérdésért, de végre egy viszonylag "normálisabb" dolgot akarok összerakni, és tapasztalat híján nem tudom mik a best practice-k
(#7766) petyus_ : Na akkor ezt majd megnézem egy kis refactorral
köszönöm Na igazából rájöttem, maradjon itt az utókornak + nekemi is, ha elfelejtem
Tök jól meg van oldva, mert bármelyik componensből be lehet zárni a dialogot, csak el kell kérni a referenciáját a dialognak
private dialogRef: MatDialogRef<AccountModalComponent>ürüm az ürümben, hogyha meghívom a dialofRef.close() metódust, akkor bármit vissza lehet adni benne, annak a komponensnek, amelyik megnyitotta a dialogot
-
martonx
veterán
Patika!
Annyi, hogy az image.style.display = ''; és image.style.display = 'none'; -t fel kellett cserélni, valamint .addEventListener('keyup', event => { helyett document.addEventListener('keyup', event => { lett, mert amugy beintegrálva Cannot read property 'addEventListener' of null hibát dobott. Már tökéletesen működik a chaten is. Köszönöm szépen
nm. Máskor ne félj nekiállni jquery mentesíteni egy kódot. A jqueryben semmi varázslat nincs.
-
bandi0000
nagyúr
Ha az a cél, hogy a regisztrált felhasználó egyből be is legyen léptetve, akkor az API-d register action-je akár vissza is küldheti egyből a tokent (nem tudom, hogy oldod meg a logint, gondolom jwt-vel, azt visszaadhatja a register method is), de ez csak egy tipp így hirtelen, működni működik, de nem tudom hogy szokták ezt megoldani.
Igen ezen is gondolkodtam, talàn lehet ez lenne a legjobb kompromisszum
-
petyus_
senior tag
Szerintetek Angularba "komoly" appban mennyire állja meg a helyét az olyan megoldás, hogy egymásba ágyazom a regisztrációt és a beléptetést is
Ugye, úgy néz ki a dolog, hogy van egy dialog componemsem, abban pedig selectorral illesztem be a regisztráció vagy a bejelentkezés form komponensét
És most vettem észre, hogy visszafele nem tudok kommunikálni, tehát ha regisztrál a user, akkor se nem tudom átváltani a felületet login-re, és se nem tudok visszafele adni adatot
Így 1.0 verzióban azt csináltam, hogy egymásba ágyaztam a regisztrációnál a 2 service hívást, sikeres regisztráció után meghívja a beléptetést, de ez így elég hoki megoldásnak tűnik, pláne, hogy hibát se tudok kezelni, bár elvileg nem is lehetne, mert a regisztrációs adatokat használja beléptetésnél ism de akkor is
2.0 refatorba arra gondoltam, hogy akkor 1 dialog lenne és benne 2 divvel belerakva mindkét form, nyilván *ngIf-el elválasztva, és így talán normálisabban lehetne megoldani, de még ez se tűnik annyira jónak
Bocs a sok apró kérdésért, de végre egy viszonylag "normálisabb" dolgot akarok összerakni, és tapasztalat híján nem tudom mik a best practice-k
(#7766) petyus_ : Na akkor ezt majd megnézem egy kis refactorral
köszönöm Ha az a cél, hogy a regisztrált felhasználó egyből be is legyen léptetve, akkor az API-d register action-je akár vissza is küldheti egyből a tokent (nem tudom, hogy oldod meg a logint, gondolom jwt-vel, azt visszaadhatja a register method is), de ez csak egy tipp így hirtelen, működni működik, de nem tudom hogy szokták ezt megoldani.
-
bandi0000
nagyúr
Szerintetek Angularba "komoly" appban mennyire állja meg a helyét az olyan megoldás, hogy egymásba ágyazom a regisztrációt és a beléptetést is
Ugye, úgy néz ki a dolog, hogy van egy dialog componemsem, abban pedig selectorral illesztem be a regisztráció vagy a bejelentkezés form komponensét
És most vettem észre, hogy visszafele nem tudok kommunikálni, tehát ha regisztrál a user, akkor se nem tudom átváltani a felületet login-re, és se nem tudok visszafele adni adatot
Így 1.0 verzióban azt csináltam, hogy egymásba ágyaztam a regisztrációnál a 2 service hívást, sikeres regisztráció után meghívja a beléptetést, de ez így elég hoki megoldásnak tűnik, pláne, hogy hibát se tudok kezelni, bár elvileg nem is lehetne, mert a regisztrációs adatokat használja beléptetésnél ism de akkor is
2.0 refatorba arra gondoltam, hogy akkor 1 dialog lenne és benne 2 divvel belerakva mindkét form, nyilván *ngIf-el elválasztva, és így talán normálisabban lehetne megoldani, de még ez se tűnik annyira jónak
Bocs a sok apró kérdésért, de végre egy viszonylag "normálisabb" dolgot akarok összerakni, és tapasztalat híján nem tudom mik a best practice-k
(#7766) petyus_ : Na akkor ezt majd megnézem egy kis refactorral
köszönöm -
petyus_
senior tag
Ezeket a mat-error alapból figyeli, required-öt is pl csak akkor írja ki, ha rámész az input mezőre, és kijössz belőle, tehát ha rákattintasz, de még nem írtál bele, akkor ki sem írja, csak ha úgy hagyod el, hogy üresen hagytad, vagy írtál bele, de visszatörölted.
"Errors are hidden initially and will be displayed on invalid form fields after the user has interacted with the element" - ezért, ha csak egy error-message van a fieldhez, akkor nem is kell neked foglalkozni az ngIf-ekkel, csak ha több van, és akkor is elég, ha csak az adott error-t teszed az ngIf-be
-
bandi0000
nagyúr
Kipróbáltam most a te validátorodat, és nekem jól működik.
Így néz ki a html:
<mat-form-field class="w-100"><mat-label>Name</mat-label><input type="text" id="name" formControlName="name" matInput placeholder="Enter category name" /><mat-error *ngIf="name.hasError('required')">Name is required.</mat-error><mat-error *ngIf="name.hasError('minlength')">Name must be at least 3 characters.</mat-error><mat-error *ngIf="name.hasError('containUpperCase')">Must conatin uppercase</mat-error></mat-form-field>És a ts-ben annyit csináltam, hogy beleraktam a te functionödet, meg hozzáadtam a formcontrolhoz:
name: new FormControl('', [Validators.required, Validators.minLength(3), this.containUpperCase]),Így üresen, és 3 karakter alatt csak a minlength hibát írja, containUpperCase-t meg utána (átneveztem containDigit-ről
).A name az egy sima getter, vissza adja a 'this.form.control.name'-et, így átláthatódd a html.
De így nem figyeli a dirty és pristine tulajdonságokat nem? Mármint ha belekattintassz a mezőbe, akkor nem ír ki hibát, sőt elvileg a a requiredre nem is fog hibát jelezni csak a form lesz invalid
-
petyus_
senior tag
Az igazából ennyi:
export function containDigit(control: AbstractControl): { [key: string]: boolean } | null {
if(control.errors?.required || control.errors?.minlength || control.errors?.maxlength){return null; }
if (!/[A-Z]/.test(control.value) && environment.passwordContainDigit) {return {'containUpperCase': true }}
return null;}Akkor ír ki 2 hibaüzenetet amikor belekattintottam a mezőbe, de nem írtam semmit, nyilván olyankor required-re is lő, meg erre is, ezért próbálkoztam az első if-ben, megnézni, hogyha van már a required-re hiba, akkor ne is nézze ezt
Kipróbáltam most a te validátorodat, és nekem jól működik.
Így néz ki a html:
<mat-form-field class="w-100"><mat-label>Name</mat-label><input type="text" id="name" formControlName="name" matInput placeholder="Enter category name" /><mat-error *ngIf="name.hasError('required')">Name is required.</mat-error><mat-error *ngIf="name.hasError('minlength')">Name must be at least 3 characters.</mat-error><mat-error *ngIf="name.hasError('containUpperCase')">Must conatin uppercase</mat-error></mat-form-field>És a ts-ben annyit csináltam, hogy beleraktam a te functionödet, meg hozzáadtam a formcontrolhoz:
name: new FormControl('', [Validators.required, Validators.minLength(3), this.containUpperCase]),Így üresen, és 3 karakter alatt csak a minlength hibát írja, containUpperCase-t meg utána (átneveztem containDigit-ről
).A name az egy sima getter, vissza adja a 'this.form.control.name'-et, így átláthatódd a html.
-
bucihost
senior tag
Patika!
Annyi, hogy az image.style.display = ''; és image.style.display = 'none'; -t fel kellett cserélni, valamint .addEventListener('keyup', event => { helyett document.addEventListener('keyup', event => { lett, mert amugy beintegrálva Cannot read property 'addEventListener' of null hibát dobott. Már tökéletesen működik a chaten is. Köszönöm szépen
-
bandi0000
nagyúr
Nemrég kezdtem el használni a materialt, tehát nem 100%, hogy én tudom jól, de "mat-error"-ból lehet több, abba kell belerakni az error-message-eket (szerkesztettem az előzőt, raktam be egy saját kódot).
Viszont itt most a ts file kéne, ahol megírtad a custom validatort.
Egyébként pl a minlength így van megírva:static minLength(minLength: number): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
if (isEmptyInputValue(control.value)) {
return null; // don't validate empty values to allow optional controls
}
const length: number = control.value ? control.value.length : 0;
return length < minLength ?
{'minlength': {'requiredLength': minLength, 'actualLength': length}} :
null;
};
}isEmpty ennyit csinál:
return value == null || value.length === 0;Az igazából ennyi:
export function containDigit(control: AbstractControl): { [key: string]: boolean } | null {
if(control.errors?.required || control.errors?.minlength || control.errors?.maxlength){return null; }
if (!/[A-Z]/.test(control.value) && environment.passwordContainDigit) {return {'containUpperCase': true }}
return null;}Akkor ír ki 2 hibaüzenetet amikor belekattintottam a mezőbe, de nem írtam semmit, nyilván olyankor required-re is lő, meg erre is, ezért próbálkoztam az első if-ben, megnézni, hogyha van már a required-re hiba, akkor ne is nézze ezt
-
petyus_
senior tag
Igazából [ennyi]
egyenlőre még hunglish
de majd többnyelvűsítés a cél, igazából a gyári validatoroknál le van valahogy kezelve ez szerintem, mert pl egy üres mezőre nem írja ki, hogy kötelező, és email formátumnak meg kell felelnieDe akkor majd utánanézek, hogy lehet ezt normálisan kezelni
Nemrég kezdtem el használni a materialt, tehát nem 100%, hogy én tudom jól, de "mat-error"-ból lehet több, abba kell belerakni az error-message-eket (szerkesztettem az előzőt, raktam be egy saját kódot).
Viszont itt most a ts file kéne, ahol megírtad a custom validatort.
Egyébként pl a minlength így van megírva:static minLength(minLength: number): ValidatorFn {
return (control: AbstractControl): ValidationErrors | null => {
if (isEmptyInputValue(control.value)) {
return null; // don't validate empty values to allow optional controls
}
const length: number = control.value ? control.value.length : 0;
return length < minLength ?
{'minlength': {'requiredLength': minLength, 'actualLength': length}} :
null;
};
}isEmpty ennyit csinál:
return value == null || value.length === 0; -
martonx
veterán
-
bandi0000
nagyúr
Ha mutatsz kódot, kicsit könnyebb lenne. Írtad, hogy Materialt használsz, ott ha több hibaüzenet is van, akkor neked kell kezelned, hogy melyik mikor jelenjen meg, alapból csak annyit néz, hogy dirty || touched, és ha van hiba, akkor megjeleníti (ha több hiba van, akkor mindet). Neked megírnod mindegyik hibára, hogy melyik mikor jelenjen meg.
Illetve, ha már dirty || touched, és ezért mutatja a required hibát, akkor egyértelmű, hogy mutatja a "nincs e betű" hibát, mert ha üres, akkor nincs e betű
.Nekem pl van egy ilyenem:
<mat-form-field>
<mat-label>Name</mat-label>
<input type="text" id="name" formControlName="name" matInput />
<mat-error *ngIf="accountName.hasError('required')">Account name is required</mat-error>
<mat-error *ngIf="accountName.hasError('minlength')">Account name must be at least 3 characters</mat-error>
</mat-form-field>Itt a required akkor jelenik meg, ha dirty || touched, a minlength-es pedig akkor, ha 1 vagy 2 karakter van beírva, de ez a gyári minlength, itt megvan írva ez a viselkedés.
Igazából [ennyi]
egyenlőre még hunglish
de majd többnyelvűsítés a cél, igazából a gyári validatoroknál le van valahogy kezelve ez szerintem, mert pl egy üres mezőre nem írja ki, hogy kötelező, és email formátumnak meg kell felelnieDe akkor majd utánanézek, hogy lehet ezt normálisan kezelni
-
petyus_
senior tag
Bekérdezek ide, hátha valaki találkozott hasonlóval
Angular 9
Reactive formot használok, meg materialt
Használok egy pár beépített validátort, meg egy sajátot a jelszóra
A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra
Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta
Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani
Ha mutatsz kódot, kicsit könnyebb lenne. Írtad, hogy Materialt használsz, ott ha több hibaüzenet is van, akkor neked kell kezelned, hogy melyik mikor jelenjen meg, alapból csak annyit néz, hogy dirty || touched, és ha van hiba, akkor megjeleníti (ha több hiba van, akkor mindet). Neked megírnod mindegyik hibára, hogy melyik mikor jelenjen meg.
Illetve, ha már dirty || touched, és ezért mutatja a required hibát, akkor egyértelmű, hogy mutatja a "nincs e betű" hibát, mert ha üres, akkor nincs e betű
.Nekem pl van egy ilyenem:
<mat-form-field>
<mat-label>Name</mat-label>
<input type="text" id="name" formControlName="name" matInput />
<mat-error *ngIf="accountName.hasError('required')">Account name is required</mat-error>
<mat-error *ngIf="accountName.hasError('minlength')">Account name must be at least 3 characters</mat-error>
</mat-form-field>Itt a required akkor jelenik meg, ha dirty || touched, a minlength-es pedig akkor, ha 1 vagy 2 karakter van beírva, de ez a gyári minlength, itt megvan írva ez a viselkedés.
-
bucihost
senior tag
-
martonx
veterán
Az a sor semmit nem csinál, picit megformázva: https://jsfiddle.net/8yvxuk6n/
bakker, már épp teljesen átírtam, amikor sikerült reloadolnom a nyomorult jsfiddle-t. Ez esetben sok sikert hozzá. Bagatell átírni, kivéve a fadeout-ot, ami vanillajs-ben nyilván nincs. De én már nem állok neki még egyszer.
-
bandi0000
nagyúr
Köszönöm, ez lett a megoldás
-
cattus
addikt
+ egy kis Responsive ötlet is jól jönne
Szintén Angular material, + Angular Flex-Layout
Ötlet az az, hogy angularba nyitok egy dialogot a bejelentkezés és regisztrációhoz, viszont úgy szeretném megoldani a kettő közti váltást, hogy a dialogon belül 2 db gomb lenne, egymás mellett, amik egyenként elfoglalják a szélesség 50-50%-át, viszont a legkisebb állapotában minden vezérlő egymás alá kerülne
Nagyrészt ezek meg is vannak, csak az első fejtörést az okozza, hogy a dialognak kellene egyáltalán adni szélességet? mert ugye elvileg felveszi a tartalomnak a szélességét
A másik dolog, hogy ahogy összehúzom a böngészőt, a beviteli mezők szépen egymás alá kerülnek, viszont a gombok nem, ez azért lehet mert megadtam nekik, hogy 100% legyen a szélességük, ha viszont ezt kiveszem, akkor meg nem töltik ki a helyet
(beviteli mezők külön komponensben vannak, azokat alul szúrom be)<div fxLayout="column"><div fxLayout="row" fxLayoutAlign="end"><button mat-button (click)="closeDialog()">
<i class="material-icons">close</i></button></div><div fxLayout="row"><div fxFlex="100"><button mat-button (click)="isLoginActive= true"[class.btn--disable]="isLoginActive"class="full-width no-shape">Login</button><button mat-button (click)="isLoginActive= false"[class.btn--disable]="!isLoginActive"class="full-width no-shape">Registration</button>
</div></div></div><div *ngIf="isLoginActive"><app-login></app-login></div><div *ngIf="!isLoginActive"><app-registration></app-registration></div>FxLayout esetében van olyan, hogy megadod, hogy egyes méretekben hogy viselkedjen. Pl.
<div fxLayout="row" fxLayout.xs="column"></div>
esetén xs méret esetén column, felette row elrendezést használ. Így maradhat a 100% is. Van még gt-xs meg lt-xs is (meg persze a többi méretre is). -
bandi0000
nagyúr
Bekérdezek ide, hátha valaki találkozott hasonlóval
Angular 9
Reactive formot használok, meg materialt
Használok egy pár beépített validátort, meg egy sajátot a jelszóra
A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra
Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta
Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani
+ egy kis Responsive ötlet is jól jönne
Szintén Angular material, + Angular Flex-Layout
Ötlet az az, hogy angularba nyitok egy dialogot a bejelentkezés és regisztrációhoz, viszont úgy szeretném megoldani a kettő közti váltást, hogy a dialogon belül 2 db gomb lenne, egymás mellett, amik egyenként elfoglalják a szélesség 50-50%-át, viszont a legkisebb állapotában minden vezérlő egymás alá kerülne
Nagyrészt ezek meg is vannak, csak az első fejtörést az okozza, hogy a dialognak kellene egyáltalán adni szélességet? mert ugye elvileg felveszi a tartalomnak a szélességét
A másik dolog, hogy ahogy összehúzom a böngészőt, a beviteli mezők szépen egymás alá kerülnek, viszont a gombok nem, ez azért lehet mert megadtam nekik, hogy 100% legyen a szélességük, ha viszont ezt kiveszem, akkor meg nem töltik ki a helyet
(beviteli mezők külön komponensben vannak, azokat alul szúrom be)<div fxLayout="column"><div fxLayout="row" fxLayoutAlign="end"><button mat-button (click)="closeDialog()">
<i class="material-icons">close</i></button></div><div fxLayout="row"><div fxFlex="100"><button mat-button (click)="isLoginActive= true"[class.btn--disable]="isLoginActive"class="full-width no-shape">Login</button><button mat-button (click)="isLoginActive= false"[class.btn--disable]="!isLoginActive"class="full-width no-shape">Registration</button>
</div></div></div><div *ngIf="isLoginActive"><app-login></app-login></div><div *ngIf="!isLoginActive"><app-registration></app-registration></div> -
martonx
veterán
[link] itt a teljes neten lelt kód.
Van egy chat, ami js alapú. Annak a smiley listájába szeretném beintegrálni, de jelen formában nem nyeli be. Ott a chat agya egy 2000 soros JS file.
A fenti kódban amúgy 1 dolgot nem értek. $(".name").hide(); "name" class nem létezik, akkor mit rejtene el?
Az a sor semmit nem csinál, picit megformázva: https://jsfiddle.net/8yvxuk6n/
-
bucihost
senior tag
[link] itt a teljes neten lelt kód.
Van egy chat, ami js alapú. Annak a smiley listájába szeretném beintegrálni, de jelen formában nem nyeli be. Ott a chat agya egy 2000 soros JS file.
A fenti kódban amúgy 1 dolgot nem értek. $(".name").hide(); "name" class nem létezik, akkor mit rejtene el?
-
martonx
veterán
-
cattus
addikt
Ilyen automatizált megoldás szerintem nincs, de itt le van írva pár dolog, meg ha 13 sor, szerintem ide is bedobhatod.
Amúgy csak egy megjegyzés, hogy a jQuery is JavaScript (pontosabban egy JS-ben írt library), gondolom itt te a DOM API-ra gondolsz, hogy ne kelljen a teljes jQuery-t behúzni.
-
bucihost
senior tag
Sziasztok!
Létezik bármilyen konverter, amivel jQuery-ből JavaScript-et tudnék varázsolni?
Van egy 13soros jQuery, amit szeretnék használni JS-ben.
-
bandi0000
nagyúr
Bekérdezek ide, hátha valaki találkozott hasonlóval
Angular 9
Reactive formot használok, meg materialt
Használok egy pár beépített validátort, meg egy sajátot a jelszóra
A gond ott van, hogy minden hibát egyszer ír ki, tehát először csak a required-re lő, aztán ha van benne valami, akkor kiírja, hogy rövid a jelszó stb, de ha használom a saját validátoromat , ami azt nézi, hogy van e benne nagybetű, akkor kiírja a hibát akkor is, amikor üres a beviteli mező, és akkor 2 hibát ír ki a required-re, meg a saját validációmra
Ezt nem tudom, hogyan kellene megoldani, azt próbáltam már, hogy a custom validatorba megvizsgálom, hogy van e benne hiba, és a hibák között nincs az, amire éppen létrahoztam a custom validatort, de ígyis ugyan ezt csinálta
Legrosszabb esetben használok pattern-t, de azért szebb lenne emígy megoldani
-
Rickeffe
aktív tag
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. -
Tomi_78
aktív tag
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é.Köszönöm ezt a választ is és átnézem a hivatkozott oldalt, amit küldtél.
Tehát az fps beállításához le kell tudnom kérdeznem a képernyőfrissítési frekvenciát a programjaimban? -
martonx
veterán
Sziasztok!
Korábban már kérdezősködtem itt párszor, pl. a játékok sebességét illetően, és ajánlották itt nekem a SetInterval() helyett a requestAnimationFrame() függvény használatát.
Azóta használom is ezt, hiszen az én 4 GB RAM-mal és kb. 3 GHz-es CPU-val rendelkező számítógépemen jól és simán futnak a javascriptes játékaim.
Viszont most kipróbáltam egyiket egy, az enyémnél lényegesen erősebb és gyorsabb számítógépen (pl. 8 GB RAM van benne, tehát kétszerese az enyémnek) és elhűlve tapasztaltam, hogy a játékom lassabban fut, mint a saját gépemen. Pedig egy gagyi kis Pong-szerű, labdapattogtatós játékról van szó.
Miért van ilyen sebességbeli különbség, ráadásul a gyengébb gép javára? És hogyan lehetne megoldani, hogy mindenütt egyforma sebességgel fusson?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é. -
Rickeffe
aktív tag
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.Szerintem ez így ebben a formában nem teljesen igaz.
Ha egységnyi elmozdulás van framenként és a másik gépen a böngésző nem ugyanazt az fps-t adja akkor nem fog egyezni a "sebesség", viszont a tickekek pontosak. Az fps-t viszont a böngésző adja meg, de nem a ram mennyiség alapján ha jól tudom.
tomi_78
https://stackoverflow.com/questions/46852857/how-to-time-requestanimationframe-independent-of-refreshrates -
sztanozs
veterán
Sziasztok!
Korábban már kérdezősködtem itt párszor, pl. a játékok sebességét illetően, és ajánlották itt nekem a SetInterval() helyett a requestAnimationFrame() függvény használatát.
Azóta használom is ezt, hiszen az én 4 GB RAM-mal és kb. 3 GHz-es CPU-val rendelkező számítógépemen jól és simán futnak a javascriptes játékaim.
Viszont most kipróbáltam egyiket egy, az enyémnél lényegesen erősebb és gyorsabb számítógépen (pl. 8 GB RAM van benne, tehát kétszerese az enyémnek) és elhűlve tapasztaltam, hogy a játékom lassabban fut, mint a saját gépemen. Pedig egy gagyi kis Pong-szerű, labdapattogtatós játékról van szó.
Miért van ilyen sebességbeli különbség, ráadásul a gyengébb gép javára? És hogyan lehetne megoldani, hogy mindenütt egyforma sebességgel fusson?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. -
Tomi_78
aktív tag
Sziasztok!
Korábban már kérdezősködtem itt párszor, pl. a játékok sebességét illetően, és ajánlották itt nekem a SetInterval() helyett a requestAnimationFrame() függvény használatát.
Azóta használom is ezt, hiszen az én 4 GB RAM-mal és kb. 3 GHz-es CPU-val rendelkező számítógépemen jól és simán futnak a javascriptes játékaim.
Viszont most kipróbáltam egyiket egy, az enyémnél lényegesen erősebb és gyorsabb számítógépen (pl. 8 GB RAM van benne, tehát kétszerese az enyémnek) és elhűlve tapasztaltam, hogy a játékom lassabban fut, mint a saját gépemen. Pedig egy gagyi kis Pong-szerű, labdapattogtatós játékról van szó.
Miért van ilyen sebességbeli különbség, ráadásul a gyengébb gép javára? És hogyan lehetne megoldani, hogy mindenütt egyforma sebességgel fusson? -
sonar
addikt
Sziasztok,
Ehhez hasonló filterező scriptet tudtok ajánlani?tablefilter
-
RedHarlow
aktív tag
-
whYz
őstag
-
Jim-Y
veterán
Sajnos nem férek hozzá az adatokhoz csak így ebben a formában, egy weboldalon mint felhasználó. A feladatom ezen adatok kimásolgatása egyesével, ezt szeretném gyorsítani egy chrome extensionnel, ami szépen kiszedi az adatokat nekem úgy ahogy nekem arra szükségem van mivel napi szintű feladat.

-
whYz
őstag
Sajnos nem férek hozzá az adatokhoz csak így ebben a formában, egy weboldalon mint felhasználó. A feladatom ezen adatok kimásolgatása egyesével, ezt szeretném gyorsítani egy chrome extensionnel, ami szépen kiszedi az adatokat nekem úgy ahogy nekem arra szükségem van mivel napi szintű feladat.

Eleg gany modon jon az adatod, de ha jol ertem akkor valahogy igy kellene kineznie az eredeti adatnak. Ezzel mar tudsz valamit kezdeni...
-
RedHarlow
aktív tag
Sajnos nem férek hozzá az adatokhoz csak így ebben a formában, egy weboldalon mint felhasználó. A feladatom ezen adatok kimásolgatása egyesével, ezt szeretném gyorsítani egy chrome extensionnel, ami szépen kiszedi az adatokat nekem úgy ahogy nekem arra szükségem van mivel napi szintű feladat.

-
Csepe
aktív tag
Ha tudsz az adatok szerkezetén módosítani, akkor használj inkább JSON formátumú adatokat, elkerülhető vele ez az egész probléma.
-
rikxjeee
tag
Lehet, hogy hülye kérdés, de ezek az adatok honnan jönnek? Miért így?
-
RedHarlow
aktív tag
-
martonx
veterán
0 = ID.
2 = Type.Az a lényeg, hogy a weboldalon a jogosultság igények 4 sort kapnak mivel az igénylés beadásakor 4 db speciális mezőt tölthet ki az igénylő. Ebből számomra minden esetben 2 mezőnyi adatra van szükségem, x-re és y-ra.
Példa:
A telefonszámra és mailre nincs szükségem.
Ezekből szeretnék 1 sort csinálni valahogy így:
result = [AAAA, Kiss Tamás, Jogosultság, Budapest, 40000]
Jsfiddle példát linkelj légyszi.
-
RedHarlow
aktív tag
0 = ID.
2 = Type.Az a lényeg, hogy a weboldalon a jogosultság igények 4 sort kapnak mivel az igénylés beadásakor 4 db speciális mezőt tölthet ki az igénylő. Ebből számomra minden esetben 2 mezőnyi adatra van szükségem, x-re és y-ra.
Példa:
A telefonszámra és mailre nincs szükségem.
Ezekből szeretnék 1 sort csinálni valahogy így:
result = [AAAA, Kiss Tamás, Jogosultság, Budapest, 40000]
-
sztanozs
veterán
Sziasztok,
A segítségetek szeretném kérni kiszedni egy 2 dimenziós tömbből pár adatot az alábbiak szerint egy új tömbbe..
original =
['AAAA','B','C','x','2'],
['AAAA','B','C','y','4'],
['AAAA','B','C','z','null'],
['AAAA','B','C','v','null'],
['BABA','D','W','S','null'],
['WWWW','S','A','Q','null'];0-nak és 2-nek egyeznie kell minden sorban, hogy használjuk a továbbiakban.
['AAAA','B','C','x','2'],
['AAAA','B','C','y','4'],
['AAAA','B','C','z','null'],
['AAAA','B','C','v','null'],Valójában azon két sor utolsó adatára van szükségünk ahol 3 = x || y.
result = ['AAAA','B','C','2','4'];
Ne haragudj, de nem értem mit szeretnél. Milyen 0-nak és 2-nek kell egyeznie?
Miért nem jó a második tömbben a 3. és 4. sor?
Mit jelent neked az, hogy 3 = x || y? -
RedHarlow
aktív tag
Sziasztok,
A segítségetek szeretném kérni kiszedni egy 2 dimenziós tömbből pár adatot az alábbiak szerint egy új tömbbe..
original =
['AAAA','B','C','x','2'],
['AAAA','B','C','y','4'],
['AAAA','B','C','z','null'],
['AAAA','B','C','v','null'],
['BABA','D','W','S','null'],
['WWWW','S','A','Q','null'];0-nak és 2-nek egyeznie kell minden sorban, hogy használjuk a továbbiakban.
['AAAA','B','C','x','2'],
['AAAA','B','C','y','4'],
['AAAA','B','C','z','null'],
['AAAA','B','C','v','null'],Valójában azon két sor utolsó adatára van szükségünk ahol 3 = x || y.
result = ['AAAA','B','C','2','4'];
-
sztanozs
veterán
a[onclick^="SelectStatID"] ha csak azok a linkek kellenek aminek ezzel kezdődik az onclick
-
RedHarlow
aktív tag
-
bucihost
senior tag
css-es válasz:
a sticky-s elem csak addig marad a helyén, amíg az őt tartalmazó div határa el nem éri, mert az kitolja a képből.
És egyetlen parent div sem lehetoverflow:hidden.
http://dinbror.dk/blog/help-css-position-sticky-doesnt-work-solved/&(#7719) instantwater
Köszi mindkettőtöknek. Position absolute megoldotta, viszont a kipernyő elkezdett villogni ha egy <button>-ra vittem az egeret. kiváltottam <img> vel, és így már patent
-
instantwater
addikt
Ja csakhogy az isMarkerInBounds_-t en is hasznalom es az nem oldja meg a problemat, mivel a legfelso zoom levelen igyis ugyis ki kell szamolni az osszes groupot es a tobbi level se sokkal jobb. Igazabol csak egy kis optimalizalas kellett, hogy tul tudjon lendulni az utolso par for loopon es az ossze is jott. Egyedul a meridiannal nem tokeletesek a groupok, de ez belefer. Egyebkent ujabban ezt hasznalom ugyanerre a celra es elkepeszto amit elasticcel ki lehet belole hozni.

A szerveroldali clustering még jobb is, mint a kliensoldali.
A szerveren van erőforrás bőven, hatékonyabb is a kód, a böngésző meg szegény izzad az ilyen munkától. -
whYz
őstag
Semmi baj, hogy a (#7715) -ben leírtam, hogy ők hogyan oldották meg

Ja csakhogy az isMarkerInBounds_-t en is hasznalom es az nem oldja meg a problemat, mivel a legfelso zoom levelen igyis ugyis ki kell szamolni az osszes groupot es a tobbi level se sokkal jobb. Igazabol csak egy kis optimalizalas kellett, hogy tul tudjon lendulni az utolso par for loopon es az ossze is jott. Egyedul a meridiannal nem tokeletesek a groupok, de ez belefer. Egyebkent ujabban ezt hasznalom ugyanerre a celra es elkepeszto amit elasticcel ki lehet belole hozni.

-
instantwater
addikt
Sikerult megoldani a problemat. Ha valakit erdekel akkor ugy csinaltam, hogy minden egyes groupot a hozza tartozo latitude/longitude racshoz rendelem, igy ha ellenorzunk egy uj pontot akkor csak az ahhoz tartozo racsban levo groupokat kell ellenoriznem az egesz terkep helyett. Ezzel az eddigi par napos terkep feldolgozasi ido lecsokkent masodpercekre. Erdekes, hogy a google-nal nem gondoltak valami ilyen megoldasra...

Semmi baj, hogy a (#7715) -ben leírtam, hogy ők hogyan oldották meg

-
whYz
őstag
Sziasztok
Szeretnem google maps segitsegevel a kozeli pontokat osszecsoportositani. Ehhez egy nested for loopot hasznalok. A gond ott kezdodik, hogy a masodik for loop folyamatosan novekszik es egy ido utan akkora mennyisegu lesz, hogy soha nem lesz vege, 1 szalon futtatom es 5+ gigabyte mennyisegu ramot eszik.
for(var pinKey in this.pinLocations)
{
for(var newPinKey in groupedLocations)
{
dist = this.getDistanceBetweenTwoLatLongs(this.pinLocations[pinKey].LL, groupedLocations[newPinKey].LL);
if(dist <= 3)
{
// A ket pont eleg kozel van, szoval hozzaadjuk a pint ehhez a grouphoz
groupedLocations[newPinKey].A = groupedLocations[newPinKey].A.concat(this.pinLocations[pinKey].A);
break;
}
}
if(dist > 3)
{
// A pin nem volt eleg kozel egyik grouphoz se, igy csinalunk egy uj groupot
groupedLocations[pinKey] = this.pinLocations[pinKey];
}
}Hogyan tudnam ezt a folyamatot leegyszerusiteni?
Sikerult megoldani a problemat. Ha valakit erdekel akkor ugy csinaltam, hogy minden egyes groupot a hozza tartozo latitude/longitude racshoz rendelem, igy ha ellenorzunk egy uj pontot akkor csak az ahhoz tartozo racsban levo groupokat kell ellenoriznem az egesz terkep helyett. Ezzel az eddigi par napos terkep feldolgozasi ido lecsokkent masodpercekre. Erdekes, hogy a google-nal nem gondoltak valami ilyen megoldasra...

-
T J
tag
Sziasztok! Adott egy chat alkalmazás ami php, mysql, ajax, js en alapszik. Az "agya" egy 2000+ soros JS. Ezt a chatet már lassan 2 éve toldozgatom, foltozgatom, új funkciókat raktam bele. Viszont most elakadtam.
Adott ez a rész: https://pastebin.com/HphUVspj
Gombnyomásra ellenörzi, hogy létezik e az ablak. Ha nem akkor a 2.sor szerint megcsinálja, 6.sortól kezdődően pedig feltölti content-tel.
Működik is, minden tuti.
Viszont: A gombok divet hiába rakom sticky.-re nem marad az ablak tetején görgetéskor (<div id="gombok" class="gombok" style="position:-webkit-sticky; position:sticky; top:0;">
) Nem igazán foglalkozik vele. Minden más egyéb formázást benyel és kezel. Valamit rosszul csinálok, vagy engedjem el mert ilyet nem fogok tudni megvalosítani? Az a baj semennyire nem vagyok otthon JS-ben. Ezzel a chattel is csak hobbi szinten foglalkozok, a toldozás / foltozás megvalósítását is google barátom segítségével valósítom meg.
Kép:
css-es válasz:
a sticky-s elem csak addig marad a helyén, amíg az őt tartalmazó div határa el nem éri, mert az kitolja a képből.
És egyetlen parent div sem lehetoverflow:hidden.
http://dinbror.dk/blog/help-css-position-sticky-doesnt-work-solved/ -
instantwater
addikt
Mindenképpen CSS vonalon indulnék el.
JS-sel rögzített pozícióba rakni nem lehet szépen. Régebben voltak ilyen megoldások, és amikor görgettél, ugrált az egész.
-
bucihost
senior tag
Css position absolute?
Ez inkább CSS kérdés mint JS.Lehet félreérthető voltam. A kérdés afelé írányult volna, hogy css vonalon próbálkozzak vagy van valami JS-es okosság a megoldásra?
-
instantwater
addikt
Sziasztok! Adott egy chat alkalmazás ami php, mysql, ajax, js en alapszik. Az "agya" egy 2000+ soros JS. Ezt a chatet már lassan 2 éve toldozgatom, foltozgatom, új funkciókat raktam bele. Viszont most elakadtam.
Adott ez a rész: https://pastebin.com/HphUVspj
Gombnyomásra ellenörzi, hogy létezik e az ablak. Ha nem akkor a 2.sor szerint megcsinálja, 6.sortól kezdődően pedig feltölti content-tel.
Működik is, minden tuti.
Viszont: A gombok divet hiába rakom sticky.-re nem marad az ablak tetején görgetéskor (<div id="gombok" class="gombok" style="position:-webkit-sticky; position:sticky; top:0;">
) Nem igazán foglalkozik vele. Minden más egyéb formázást benyel és kezel. Valamit rosszul csinálok, vagy engedjem el mert ilyet nem fogok tudni megvalosítani? Az a baj semennyire nem vagyok otthon JS-ben. Ezzel a chattel is csak hobbi szinten foglalkozok, a toldozás / foltozás megvalósítását is google barátom segítségével valósítom meg.
Kép:
Css position absolute?
Ez inkább CSS kérdés mint JS. -
bucihost
senior tag
Sziasztok! Adott egy chat alkalmazás ami php, mysql, ajax, js en alapszik. Az "agya" egy 2000+ soros JS. Ezt a chatet már lassan 2 éve toldozgatom, foltozgatom, új funkciókat raktam bele. Viszont most elakadtam.
Adott ez a rész: https://pastebin.com/HphUVspj
Gombnyomásra ellenörzi, hogy létezik e az ablak. Ha nem akkor a 2.sor szerint megcsinálja, 6.sortól kezdődően pedig feltölti content-tel.
Működik is, minden tuti.
Viszont: A gombok divet hiába rakom sticky.-re nem marad az ablak tetején görgetéskor (<div id="gombok" class="gombok" style="position:-webkit-sticky; position:sticky; top:0;">
) Nem igazán foglalkozik vele. Minden más egyéb formázást benyel és kezel. Valamit rosszul csinálok, vagy engedjem el mert ilyet nem fogok tudni megvalosítani? Az a baj semennyire nem vagyok otthon JS-ben. Ezzel a chattel is csak hobbi szinten foglalkozok, a toldozás / foltozás megvalósítását is google barátom segítségével valósítom meg.
Kép:
-
instantwater
addikt
Szia
Koszi a valaszt, de ha jol latom a marker clustering pont ugyanazt a logikat hasznalja mint az en kodom, szoval nem sokat segit a helyzeten. A dolog mukodik kis mennyisegu ponttal, de en akkora mennyisegu adatot probalok feldolgozni, hogy azt mar nem birja.

A 2 for loop itt talalhato az 1114 es 1047-es soroknal.
A legnagyobb különbség a
isMarkerInBounds_függvény.
Azokat kihagyja amik nem látszódnának.Ajánlott a kész libraryt használni a saját kód helyett.
-
whYz
őstag
A Marker clustering nem jó erre, vagy nem erre gondolsz?
Szia
Koszi a valaszt, de ha jol latom a marker clustering pont ugyanazt a logikat hasznalja mint az en kodom, szoval nem sokat segit a helyzeten. A dolog mukodik kis mennyisegu ponttal, de en akkora mennyisegu adatot probalok feldolgozni, hogy azt mar nem birja.

A 2 for loop itt talalhato az 1114 es 1047-es soroknal.
-
Csepe
aktív tag
Sziasztok
Szeretnem google maps segitsegevel a kozeli pontokat osszecsoportositani. Ehhez egy nested for loopot hasznalok. A gond ott kezdodik, hogy a masodik for loop folyamatosan novekszik es egy ido utan akkora mennyisegu lesz, hogy soha nem lesz vege, 1 szalon futtatom es 5+ gigabyte mennyisegu ramot eszik.
for(var pinKey in this.pinLocations)
{
for(var newPinKey in groupedLocations)
{
dist = this.getDistanceBetweenTwoLatLongs(this.pinLocations[pinKey].LL, groupedLocations[newPinKey].LL);
if(dist <= 3)
{
// A ket pont eleg kozel van, szoval hozzaadjuk a pint ehhez a grouphoz
groupedLocations[newPinKey].A = groupedLocations[newPinKey].A.concat(this.pinLocations[pinKey].A);
break;
}
}
if(dist > 3)
{
// A pin nem volt eleg kozel egyik grouphoz se, igy csinalunk egy uj groupot
groupedLocations[pinKey] = this.pinLocations[pinKey];
}
}Hogyan tudnam ezt a folyamatot leegyszerusiteni?
A Marker clustering nem jó erre, vagy nem erre gondolsz?
-
I02S3F
addikt
Sziasztok
Szeretnem google maps segitsegevel a kozeli pontokat osszecsoportositani. Ehhez egy nested for loopot hasznalok. A gond ott kezdodik, hogy a masodik for loop folyamatosan novekszik es egy ido utan akkora mennyisegu lesz, hogy soha nem lesz vege, 1 szalon futtatom es 5+ gigabyte mennyisegu ramot eszik.
for(var pinKey in this.pinLocations)
{
for(var newPinKey in groupedLocations)
{
dist = this.getDistanceBetweenTwoLatLongs(this.pinLocations[pinKey].LL, groupedLocations[newPinKey].LL);
if(dist <= 3)
{
// A ket pont eleg kozel van, szoval hozzaadjuk a pint ehhez a grouphoz
groupedLocations[newPinKey].A = groupedLocations[newPinKey].A.concat(this.pinLocations[pinKey].A);
break;
}
}
if(dist > 3)
{
// A pin nem volt eleg kozel egyik grouphoz se, igy csinalunk egy uj groupot
groupedLocations[pinKey] = this.pinLocations[pinKey];
}
}Hogyan tudnam ezt a folyamatot leegyszerusiteni?
Hogy könnyebben olvasható legyen a kód, szerintem valami pastebinre lenne jó feltenni.
-
whYz
őstag
Sziasztok
Szeretnem google maps segitsegevel a kozeli pontokat osszecsoportositani. Ehhez egy nested for loopot hasznalok. A gond ott kezdodik, hogy a masodik for loop folyamatosan novekszik es egy ido utan akkora mennyisegu lesz, hogy soha nem lesz vege, 1 szalon futtatom es 5+ gigabyte mennyisegu ramot eszik.
for(var pinKey in this.pinLocations)
{
for(var newPinKey in groupedLocations)
{
dist = this.getDistanceBetweenTwoLatLongs(this.pinLocations[pinKey].LL, groupedLocations[newPinKey].LL);
if(dist <= 3)
{
// A ket pont eleg kozel van, szoval hozzaadjuk a pint ehhez a grouphoz
groupedLocations[newPinKey].A = groupedLocations[newPinKey].A.concat(this.pinLocations[pinKey].A);
break;
}
}
if(dist > 3)
{
// A pin nem volt eleg kozel egyik grouphoz se, igy csinalunk egy uj groupot
groupedLocations[pinKey] = this.pinLocations[pinKey];
}
}Hogyan tudnam ezt a folyamatot leegyszerusiteni?
-
cattus
addikt
-
petyus_
senior tag
-
hefike
tag
Sziasztok!js-ben hogyan lehet megoldani a számrendszerek közötti átváltást?konkrétan 10-ből 16-ba szeretném egy text mező értékét kiolvasni majd átváltani 16-os ba.köszi.
-
I02S3F
addikt
Köszönöm szépen Nektek!
-
instantwater
addikt
-
K1nG HuNp
őstag
rakd fel gitre es linkeld be ide, vagy johet priviben, en szivesen atnezem
-
I02S3F
addikt
Sziasztok! Ha szeretném felülvizsgáltatni a kódom (html+css+js), azt hol tehetem meg? Kaptam a jó gyakorlat kialakítására útmutatót, de a mostani projektben nem lesz időm áttanulmányozni. Majd nyáron.
-
cattus
addikt
Most biztosan butaságot kérdezek, de nincs véletlenü olyan JS megosztó oldal a világhálón{szándékosan nem internetet írtam}, ami többek közt magyarul szövegel ?
1. Elnavigálsz erre az oldalra: [link]
2. Beilleszted a kódot a megfelelő helyre.
3. Rányomsz a Save (Mentés) gombra.
4. Az URL-t kimásolod és beilleszted a hozzászólásodba.
5. ???
6. Profit.Angol nélkül meg
nagyon nehezenkb. sehogy sem fogsz előrébb jutni. -
sztanozs
veterán
Most biztosan butaságot kérdezek, de nincs véletlenü olyan JS megosztó oldal a világhálón{szándékosan nem internetet írtam}, ami többek közt magyarul szövegel ?
-
rikxjeee
tag
Már miért kéne írni nekik? Ez egy eszköz, amit használsz ember... Mindegy, kiszálltam én is, tégy amit akarsz.
Új hozzászólás Aktív témák
-
7800 - 7701
10361 - 10001 10000 - 9901 9900 - 9801 9800 - 9701 9700 - 9601 9600 - 9501 9500 - 9401 9400 - 9301 9300 - 9201 9200 - 9101 9100 - 9001 9000 - 8901 8900 - 8801 8800 - 8701 8700 - 8601 8600 - 8501 8500 - 8401 8400 - 8301 8300 - 8201 8200 - 8101 8100 - 8001 8000 - 7901 7900 - 7801 7800 - 7701 7700 - 7601 7600 - 7501 7500 - 7401 7400 - 7301 7300 - 7201 7200 - 7101 7100 - 7001 7000 - 6901 6900 - 6801 6800 - 6701 6700 - 6601 6600 - 6501 6500 - 6401 6400 - 6301 6300 - 6201 6200 - 6101 6100 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- DDR4 memóriák eladóak
- Hihetetlen Gaming PC brutális specifikációkkal! A dán Topdata.dk IT-cég által összerakva
- 2.5" 100% noti HDD-k Western Digital, Seagate 320Gb (3k) +1Tb (15k) van 1db SSHD is (15k)
- LG UltraGear 27GR93U-B IPS Monitor! 3840x2160 / 144Hz / 1ms / G-Sync / FreeSync!
- BESZÁMÍTÁS! 8TB WD GOLD WD8004FRYZ HDD meghajtó garanciával hibátlan működéssel
- Új Dell 14 Precision 3490 Ultra7 165H 16mag 32GB 512GB SSD Nvidia RTX 500 ADA 4GB Win11 Pro Garancia
- iPhone 16 Pro 512GB 96% (1év Garancia) ! Felújított kijelző !
- Apple iPad Pro 2025 11" M5 256GB & 512GB Wi-fi / Wi-fi + 5G Bontatlan Összes szín / 27% áfás ár
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
A fentebb leirtaknak nem egy van.


