- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
- Gurulunk, WAZE?!
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- sh4d0w: Csak a profit - emberélet nem számít
- vrob: Az IBM PC és a játékok a 80-as években
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
-
LOGOUT
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
-
nevemfel
senior tag
válasz
lanszelot #8295 üzenetére
Viszont az easy meg borzasztó nehéz
Hozz valami konkrét példát ebből, és ha ráérek (vagy valaki más), akkor megmutatom, hogy hogyan lehet egy kicsit komplexebb feladatot részfeladatokra bontani, egészen addig a pontig, amikor a részfeladatok kóddá formálása már triviális.
-
coco2
őstag
válasz
lanszelot #8295 üzenetére
Jössz itt a téglákkal, meg hogy alapozás, aztán minden csak elavult, rohannál előre eszetlenül, és nyafogsz, hogy nem érted
Akarsz egy alapozót? Tessék: Antikvár könyv - A Világháló lehetőségei - 2001
Az ott alapozó. Azt kellene elsőként elolvasni. Elejétől a végéig minden egyes oldalt. 520 oldalt egyesével. (Ott ér véget a még hasznos függelék.) És ha elavult, hát akkor elavult, de akkor is azt kellene elolvasni.
-
cattus
addikt
válasz
lanszelot #8295 üzenetére
Az is lehet, hogy rossz irányból közelíted meg a problémát. Próbáld meg azt, hogy a feladatot elkezded lebontani egyre kisebb részekre, amíg az atomi dolgokat nem kapod (ehhez kell egy változó, amivel xy-t kell csinálni, ahhoz kell egy ciklus, etc.), nyilván időközben sok kereséssel / utánanézéssel, hogy mit hogyan érdemes megoldani.
Nem tudom milyen háttérrel rendelkezel vagy hogy miért kezdtél neki az egész programozásnak - és ezt most tényleg nem sértésnek szánom -, de az is igaz, hogy nem mindenkinek való a programozás. Érdemes elgondolkodni mit szeretnél valójában és aszerint tovább haladni.
-
lanszelot
addikt
az semmit sem ér ma már, sajnos azok már lejártak.
azóta igen sok változott 2004-es a könyv, Windows7, és internet explorer dicsőítése az első jó pár oldal.
Azóta nem hogy win7, de ie sincs, sőt flash sincs már és sorolhatnám.
Illetve írtam, hogy amit olvasni kell az nekem nem jó.
Pont azért tanulok abból amiket írtam.
Minegyik rátért a példákra, de azt egyik se mondja, hogy a terv honnan jön.
Ilyen projekt, olyan projekt, néztem vagy 30 teljes projektet, de egyik se mondja az egész honnan indul.
Mikor szakmát tanultam anno, azzal kezdtük: előkészítés
Hogyan kell előkészülni. Na ez sehol sincs. Pedig ez az alap után azonnal az első tégla. -
lanszelot
addikt
Elször is köszönöm a válaszokat.
Igen js, fentebb irtam és igen azért ide irtam
W3 az alap, akár a stackoverflow
Nem elakadtam, mert ezt senki se mondja el.
Vettem udemy-t, magán órát, youtube, grashopper, edabit..stb
De mindenütt az van, hogy ott ülök, és ezt hogy kellene program nyelven kivitelezni.példánál maradva:
Nincsenek lépések, csak az hogy szomjas vagy.
Ez csak akkor lehetséges, ha már tudod a lépéseket /nem azt hogyan kell lépni, az ok, a terv nincs meg/ , de azokat honnan tudom meg?
Mert, ha elmondja valaki akkor: "jaaaa, tényleg"Tehát nem az elkésztés a tervezés nem esik le. Valami tervet tuti csináltok , de mivel én az elején vagyok, nekem az apró dolgokhoz is meg kellene csinálni, hogy később nagyobb tervet készthessek.
Az elakadtam, utána nézek, sem működik, mert fogalmam sincs minek nézzek utána, hisz nincs terv, nincs lépés, csak üres képernyő van.
pl edabit: very easy ment, uncsi volt, rengeteget megcsináltam, borzasztó egyszerű volt. Viszont az easy meg borzasztó nehéz, az nem ment, ott ültem, fehér képernyő, mert nincs lépés, nincs terv. Azokat tudom, hogy ha ez a lépés, akkor hogy irom le, de mi a lépés arra nem jövök rá.
-
Taci
addikt
válasz
lanszelot #8288 üzenetére
Mivel a JavaScript-topikban tetted fel a kérdést, így feltételezem, a JS érdekel.
Ajánlani tudom ezt az oldalt, egészen az alapoktól elvisz egy magabiztos alap tudásig, tele példákkal és ellenörző kérdésekkel is:
https://www.w3schools.com/js/DEFAULT.aspHa elakadsz, szívesen segítünk.
Amúgy a példádnál maradva:
Inni szeretnél egy pohár vizet. Ehhez a következő függvényekre lesz első körben szükség (csak a példád miatt magyar nevekkel, és ilyen szerkezetben):
- poharKeres();
- csaphozVisz();
- csapMegenged();
- csapFolyat();
- poharEltorol();
stb.Aztán ezeket persze később megírhatod máshogy is, bevezethetsz paramétereket.
Pl. csinálsz egy függvényt, aminek az a funkciója, hogy valamit keres. Ennek paraméternek átadod, hogy mit keressen (poharat):
- keres(pohar);Ugyanígy azt is, hogy a csaphoz vigyen valamit, pontosabban hogy valahova (csaphoz) vigyen valamit (poharat):
- visz(csap, pohar);Aztán persze utána (illetve nyilván előtte) össze kell szedned, hogy mit csinál a keres() függvény. Lehet, úgy csinálod meg, hogy lesz benne 10 másik függvényhívás 20 változóval.
Ez már teljesen rajtad áll, hogyan alakítod, mire lesz szükséged benne.Kezd kicsiben (első körben a tanulós oldallal), és azt kezdd el bővíteni. Azután pedig határ a csillagos ég.
-
válasz
lanszelot #8288 üzenetére
Gyakorlás a kulcs. Emlékszem, annó úgy tanultam ki a C-t, hogy megírtam nulla tudással egy egyszerűnek tűnő játékot. Mikor elakadtam, utána néztem dolgoknak. Kitaláltam, hogy egy adott dolog hogyan működhet és megnéztem, hogy az megvalósítható-e.
Tervezni egyedül PLC-nél szoktam. A létradiagram ugyanis jól néz ki papíron is. -
-
coco2
őstag
válasz
lanszelot #8288 üzenetére
A pokol kapuján dörömbölsz éppen. Egészen biztos vagy benne?
Úgy kezdődik, hogy számodra teljesen értelmetlen példákat fogsz gyakorolni.
Attól függően, hogy mennyi tehetséged van absztrakt részletek megfigyelésére, korlátos, hogy mit tudsz megtanulni, és milyen sebességgel. Valakinek 1-2 példát megmutat a tankönyv, és megértette. Valaki a 100. után sem érti. Egyszer csak elszakad a cérna, és hagytad a fenébe - az a gyakorlati korlátod.
Jó szerencsét.
-
lanszelot
addikt
Hello,
Hogy kell megtervezni egy programot?
Ez nagyon nem világos számomra.
Megvan az ötlet mit szeretnék.
Honnan tudom, hogy kell majd 7 változó, 3 konstans, 4 függvény...stb
Ez ez ehhez úgy viszonyul, hogy akkor majd ez, ezzel, és ez nem, közben....
Ezek honnan jönnek?
Hogy kezdődik?
Nem tudom érthető-e mit nem értek.Egy pohár viz pl úgy kezdődik: keresek egy poharat, oda viszem a csaphoz, megengedem a csapot, hagyom folyni kicsit, elöbltem a poharat, megtöltöm.
Persze értem, hogy ez később már jön magától, de először mindenki megtervezi, ez érdekelne, hogy hogyan kell. -
Taci
addikt
A disy68 és az általad leírt között félúton (vagyis inkább közös halmazban) van a megoldásom.
<body>
<script>setDarkModeFromLocalStorage();</script>
<div id="loading">
<div id="loading-center"></div>
</div>
Egy loader/splash screen a logóval.
És így pont jó, mert a sötét témát erre is alkalmazni tudtam. Szóval így (tűnik) kerek(nek).
Köszönöm!
-
coco2
őstag
Van egy még viccesebb lehetőség, csak az extra kódolás. Z indexben legfelülre kiraksz egy cudar nagy div-et beállított háttér színnel (akár fehér akár fekete). Html-ből csinálod, nem kell hozzá script akasztani a betöltést. Töltés közben bármi is kerül ki nem nagyon fog látszani semmi, mert takarva lesz. Én a magam részéről a fehér színt választanám, mert az az alapértelmezett, míg tölt a böngésző (leszámítva mobil platformon, ahol fekete az alapszín). Onload-on elintézed, amit kell, aztán a takaró div-et átrakod display none-re. És hirtelen oda került a kész eredmény egyben.
-
Rimuru
veterán
Amugy erre fele indulnek el, MDN: prefers-color-scheme.
-
Taci
addikt
A sötét mód váltásához állítottam most be egy változót local storage-ban, hogy ha már korábban átváltott a felhasználó, akkor az oldal eleve sötét módban induljon.
Maga a váltás így van megoldva, ez van triggerelve a dark mode ikonra való kattintáskor is:
document.body.classList.toggle("dark-theme");
Ezt pedig csak így tudtam megcsinálni, hogy local storage-ból kiolvasva a változó értékét beállítsa a sötét témát:
<body onload="onLoadBody();">
function onLoadBody(){
const DARKMODE = "darkMode";
const storedDarkModeEnabledState = localStorage.getItem(DARKMODE);
if (storedDarkModeEnabledState == 1){
document.body.classList.toggle("dark-theme");
}
}
Viszont így egy pillanatra betöltéskor még az alap, világos téma látszódik, kvázi bevillan, és csak utána tölt be a sötét.
Hogyan tudnám megoldani, hogy egyből a sötéttel indítson?
Korábbra már nem tudom tenni a hívást, hiszen ott még nincs body. -
-
Taci
addikt
Írtam elé egy hosszú szöveget, hogy ezt a változatot használtam még a legelején a sötét témás váltáshoz, viszont csúnya volt, ahogy váltásnál "ugrált". (Csak aztán ezt kitöröltem, mert a kérdéshez és válaszhoz irrelevánsnak tűnt végül.) Így végül én is úgy csináltam meg, hogy egy CSS-ben van a két stílus, és úgy váltogatom.
Csak a Mr. Y által írt kódrészletben két CSS fájl van, ezért írtam válasznak végül ezt. De egyetértek, szebb, gyorsabb, egyszerűbb, ha egy fájlban van a két stílus. -
Taci
addikt
Próbáld meg esetleg így:
<HTML>
<link href="styles1.css" rel="stylesheet" id="themecss">
<div id="kiskacsa">Szöveg</div>
<button onclick="change()">Változz át CSS2-re</button>
</HTML>
És hozzá a JS:
const themecss = document.querySelector("#themecss");
function change() {
if (themecss.getAttribute("href") == "styles1.css") {
themecss.href = "styles2.css";
} else if (themecss.getAttribute("href") == "styles2.css"){
themecss.href = "styles1.css";
}
}
Nyugodtan javítsátok, ha így nem pontos. Meg persze lehetne switch-csel is, szebb is úgy talán. De nagyjából így működnie kellene.
-
-
coco2
őstag
Class kellene annak a div-nek, és a class-ra írni a css-t, nem az id-ra. Aztán lesz ilyen lehetőség: How can I change an element's class with JavaScript?
-
Sziasztok!
Szeretnék segítséget kérni, mert kezdek belezavarodni. Összeszámolni nem tudom, hány kódot probáltam ma le, eredménytelenül, semmi sem működik.
Adott a következő szituáció:
<HTML>
<link href="styles1.css" rel="stylesheet">
<link href="styles2.css" rel="stylesheet">
<div id="kiskacsa">Szöveg</div>
<button onclick="change()">Változz át CSS2-re</button>
</HTML>CSS1
#kiskacsa {font-size: 20px; color: black; background-color: red;}
CSS2
#kiskacsa {font-size: 30px; color: white; background-color: green;}
És itt jön a feketeleves. Mi kell a JS file-ba, hogy alapértelmezett CSS1 helyett CSS2 lépjen érvénybe? Annyi mindent kipróbáltam már, de mindhiába.
-
martonx
veterán
"Ha behúzzak egy keretet abból esetleg 9-et csinálni, 9-et nyertem, de a keret +30, hogyan jön ki a matek?"
Elképesztő magabiztossággal tudsz butaságokat írni még mindig
Szórakoztatsz
A matek úgy jön ki, hogy jó szokásod szerint megint nem néztél utána, hogy miről beszélek. Webpack, Rollup: ezek nem js libek, hanem js task runnerek, ezeket nem behúzni kell, hanem ezeken át kell futtatni a kódod, és csinálnak neked js bundle-t, minifikálva.
De mindegy is, te úgyis jobban tudod, hogy mit hogyan csinálsz -
coco2
őstag
válasz
martonx #8269 üzenetére
ES5-re nem kell fordítani, alapból úgy írtam. Nincs semmi kliens extra érintve (jquery sincs pld), móricka-egyszerűen építkeztem. Ha behúzzak bármi extrát, gyanítom, az önmagában +kbyte. Most 41 a kbyte számláló vége, és "buta" minifyer abból csinált 18-at. Ha behúzzak egy keretet abból esetleg 9-et csinálni, 9-et nyertem, de a keret +30, hogyan jön ki a matek?
Jelenleg egy szem js állapotgép halmazom van kliens oldalon ilyen hosszú nevekkel mint:
ksr.localstorage_state_machine.process_incoming_remove
és társaik. Fejlesztéshez így célszerűbb, de futtatáshoz elég lennek.l.p
és hasonlók. Jó pár kbyte lenne megspórolható csak ismert struktúra útvonalon a forrás saját hivatkozási neveit átírni.Ha mást nem, írok rá saját programot ismert stringeket 1:1 lecserélni, és adok neki listát, mit mire cseréljen. Megadom a rövid neveket én magam. Épp csak furcsa, hogy ne létezne már automata tool ilyesmire? Ha létezik, nem szándékoztam én a kereket újra feltalálni.
-
martonx
veterán
Ahogy látom a JSCompress Uglify3-at használ maga alatt, ami ES5-re fordít. Ha te ES5 felett írtad a kódodat, akkor belefordíthat egy csomó polyfil-t. Használj normális webpack, rollup akármilyen js task runnert, amiknek van beépített js bundle - minifikátora is. Azok valószínűleg valamivel kisebb js-t fognak tudni csinálni, bár csodák nincsenek, a 41kbyte-ból sosem lesz mondjuk 5kbyte
-
coco2
őstag
JScompress le tudta szedni a 41kb scriptet 18 kb-ig. Ahogy elnézem a végeredményt, még benne vannak a cefet hosszú objektum nevek, amik simán lecserélhetőek lennének. Van valami paraméterezhetőbb verzió belőle valahol, aminek megmondhatom, hogy eridjen nyugodtan mélyebbre is az objektum struktúrában, és cserélgessen ott is rövidebbekre?
-
-
coco2
őstag
Pontosvessző szintaktikai kérdésen vakarom a buksit. Példák:
var o1= {};
o1.x1= function() { return 3; }
o1.x1= function() { return 3 };
o1.x1= function() { return 3; };
Mi az előírt, és mi a megengedhető szintaktika a 3 közül ?Időnként kiröhögöm magam, amilyen kezdő vagyok
-
Taci
addikt
Köszönöm az iránymutatást a témában mindenkinek. Valóban nem ebbe a topikba való, majd ha oda értem, a megfelelő helyeken utána járok a teendőknek. Köszönöm.
-
coco2
őstag
válasz
martonx #8254 üzenetére
"_General_ data protection regulation" - csak hogy lássuk a nevét egészben. Bármilyen adat, ami a felhasználótól vagy tevékenységéből származik közvetve vagy közvetlenül, el kell számolni vele utolsó bitig. Semmit sem számít, hogy személyi eszközön vagy nyilvános számítógépen használja-e valaki, hogy az adat közvetlenül nyomon követhető, vagy személyhez köthető-e vagy sem, az adatkezelési tájékoztató törvényben előírt kötelezettség.
20-onéves kölykök a játszótéren egymásnak nagyzolós duma közben nyilván más a valóság érzékelésük. De az a játszótéren van. 3 bíróval farkas szemet nézve valahogy az összes nagyzolós duma kussol, mint kutyakaki a fűben.
-
martonx
veterán
Ez esetben a GDPR-nek semmi dolga nincs a localstorage-el, hiszen te saját magad nem tárolsz semmilyen adatot. A user saját gépén tárolódik a saját geolokációs adata, aminek engedélyezéshez kap is a böngészőtől felugró ablakot, szóval nyugi.
Akkor lenne mindez érdekes a GDPR szemszögéből nézve, ha ezt az adatot magadhoz továbbítanád, és mondjuk a saját adatbázisodban minden egyes userhez letárolnád.
Nem kell ezt túllihegni. -
coco2
őstag
Az elsődleges gdpr irányelv az elszámoltathatóság. Le kell írnod, milyen adatot kérsz el, miért kéred el, mire és hogyan használod, tárolod, változtatod, frissíted, hogyan nézhetik meg a felhasználóid, milyen adatokat tárolsz tőlük aktuálisan, hogyan kérhetik a törlését. És aztán be kell tartanod. Bármi adatot bármi célra kértél el, tényleg csak arra használd, különben kaphatsz a nyakadba alapos büntetést (mert az jellegében olyasmi, mint a sikkasztás). _Kényelmes_ lehetőséget kell adnod a felhasználóidnak, hogy jó előre elolvashassák, mit, hogyan, és miért csinálnál, és eldönthessék, hogy azt elfogadják-e, vagy sem. Ennyi a gdpr-ről.
A local storage-et illetően nem sikerült precízen elmagyaráznod, mire, hogyan, és miért használnád, így nem sokat tudunk róla véleményezni. Esetleg írd meg róla az adatkezelési tájékoztatót, azt elolvassuk, és akkor majd véleményt tudunk róla írni.
A gdpr irányelveken túl léteznek közösségi irányelvek is. Például egy YT véleményvezér lehord a marhaságaidért, az alkalmazásodat lehúzhatod a budiban
-
Taci
addikt
Mivel még nem vagyok az oldal szerkezetével teljesen kész, nem foglalkoztam a cookie-kkal. Az időjárás-modul optimális működéséhez viszont letárolom a kliensen az eszköz koordinátáit, ezt local storage-dzsal oldottam meg.
"Cookies are primarily for reading server-side, local storage can only be read by the client-side."Viszont amit írtál legutóbb, amiatt kérdezném, hogy ez rendben van-e így?
"Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként."
Ha így nem jó (cookie szerverrel való kommunikációhoz, local storage, ha csak lokálban kell adattal dolgozni), mi alapján tudom eldönteni, hogy mit-hol tárolhatok? Mi a "GDPR-kompatibilis irányelv"?A saját eszközén tárolni a saját helyadatait az adatbiztonsági kockázat?
-
coco2
őstag
Megkérdezhetem miért találtad "bénának" a forgót?
Aktuálisan szintén van loading indicator problémám, de én nem bénának találtam, hanem kompatibilitás kérdések miatt húzom a számat.
Amit egyenlőre én csináltam, az egy még sokkal bénább dolog. A teljes div-et egy másik div-vel takarom le (z indexet írok át, és a másiknak fölé rakom). A takaró div kapott fehér hátteret, így nem látszik, ami mögötte van. És egyenlőre placeholder-ként egy darab szöveg van a takaró div-en "please wait". Na ez aztán a tényleg béna
Viszont 100% böngésző kompatibilis.
-
Taci
addikt
Az csak a skeleton loader-ben van úgy megcsinálva, viszont azt túl sok idő lett volna a mostani formátumra ráhúzni.
Végül arra jutottam, hogy a template-be beraktam az feed image-khez, hogy ha betöltött, távolítsa el a háttérért felelős osztályokat:
onload="removeLoadingBackground(this);"
function removeLoadingBackground(element){
if (element.classList.contains("loading-bg")){
element.classList.remove("loading-bg");
}
if (element.classList.contains("loading-logo")){
element.classList.remove("loading-logo");
}
if (element.classList.contains("loading-img")){
element.classList.remove("loading-img");
}
}
Csak az a biztos tényleg, ha nem hagyom ott pörögni, ki tudja, melyik böngésző hogyan kezeli (vagy nem kezeli).
Nem a legszebb megoldás, ellenben működik.
Köszönöm a gyors választ amúgy mindenkinek.
-
Taci
addikt
Nem igazán szeretnék sok időt elvesztegetni annak a kezelésére, hogy amíg nem töltenek be a képek a feed item-eknél, addig is látszódjon "valami".
Már megkapták a betöltendő kép méretét, így a helyük "le van foglalva".
Arra gondoltam először, betöltök valami pörgő-forgó ikont, de aztán azt bénának találtam.
Aztán jött az, hogy akkor megcsinálom rendesen egy loading skeleton-nal. Ez el is készült: https://codepen.io/pasztorlaszlo/pen/VwmBKpmViszont sajnos nem úgy kezdtem megcsinálni az oldal felépítését, hogy ezt könnyen be tudnám építeni, így arra gondoltam, leegyszerűsítem a dolgot, és ezt az (ill. ehhez hasonló) animációt simán beállítom a feed item template-jébe háttérnek. Amíg töltődik a kép, megy az animáció, nem "üresen" vár a user, látja, hogy oda töltődni fog valami, aztán betöltődik a kép és kész.
A kérdésem az lenne, hogy "okosak" annyira a böngészők, hogy ha "rá töltődik" a háttére a kép, (azt nyilván teljesen eltakarva), akkor az animációt leállítják, vagy ez a végtelenségig fut a háttérben is tovább, pörgetve a cpu-t, és kezelnem kell valahogy?Köszi!
-
lanszelot
addikt
válasz
Silεncε #8239 üzenetére
Először is köszönöm szépen mindenkinek.
Végre tudom mit keressek, találtam is, és így legalább tudom merre tovább :)
A weboldalt is elkezdtem, és tetszik. Van nagyon könnyű, és ad egy kis pozitív visszacsatolást, hogy azokat legalább meg tudom csinálni. Ez nagyon kellett.
-
coco2
őstag
válasz
lanszelot #8237 üzenetére
Hogy ki hogyan tud / szeret tanulni, az embere válogatja. Éppen a programozást illetően az oktató videók talán nem a legjobbak kezdetben. Sokkal inkább ilyesmi könyvekkel érdemes elkezdeni. Hogy e-book formájában meg tudod-e szerezni valahonnét / valahogyan, az rajtad áll. Általában beszerezhető valami. Leír alapokat, aztán mutat rá gyakorlatot, mire és hogyan jó.
A "mindent megtanulni" - nem, az úgy nem szokott működni. Valamit megtanulni, úgy már esélyesebb. Válassz egy darab elemi konkrétumot, mire akarod használni. És azt csináld meg. Aztán csinálod az egyik példát a másik után. Ha 5 év múlva még mindig csinálod, valószínűleg addigra már megtanultál tanulni. (Vagy réges-régen feladtad.)
-
lanszelot
addikt
Hello,
Kérlek segítsetek már. Nagyon szeretném megtanulni js programozást.
HTML, CSS, JS nagyon alapok meg vannak.
JS: adattipusok, operátorok, tömb, objektum, ciklus, elágazás, függvény...ezek meg vannak
értem is mind.
De mikor van egy feladat nem tudom alkalmazni.
Főleg ott bukok el, hogy mi az "action" , ott épp melyiket kell használnom, vagy hogy magát az "action"-t hogy érem el.
pl csinálok egy gombot, és a besz urt youtube video play/pause hozzá rendelem
Nem megoldani akarom ezt, ez csak példa.
Itt pl nem tudom, hogy a play/pause "action" az honnan lesz, vagy hol találok rá.
Rengeteg videót néztem, magán órát is vettem, de nem értem ezek honnan jönnek, hogy találom meg.
Ok, értem, hogy gyakorlás gyakorlás és még több gyakorlás, de valami nincs meg valami hiányzik, egy egyeszerű kis programot se tudok készíteni /nem a youtube, sokkal sokkal egyszerőbbet se, pl egy gomb dob egy random számot ami nem lehet ugyanaz mint az előző/ és nulla a pozitív élményem, nem tudom hol, vagy mit keressek, nem tudom merre, azt se tudom mit kellene keresnem.
Mivel semmi pozitív élményem ezért csak felidegesít az egész, hogy toporgok, semerre se jutok, falak mindenhol.
Könyvből nem tudok tanulni.
Angolommal nincs gond.
Volna valami js oktató videó teljesen idiótáknak?
Szerintem az egész elképzelésem hibás lehet, ezt tudom elképzelni, hogy ezért ütközöm falba folyamatosan. Vagy nem tudom.
Teljesen tanácstalan vagyok. -
lanszelot
addikt
válasz
sztanozs #8201 üzenetére
Hello,
Pontosan ugyanazt beÍrtam amit a srác 3:12-nél neki át vált pirosra a szöveg, nekem nem.
Miért?
Karakterről karakterre megnéztem, pont ugyanaz a html és a js is. /css üres neki is, később látszik majd/
Chrome alatt és Edge alatt is néztem, nekem fekete marad.
console fül alatt nincs hiba Chrome alatt
Edge alatt hibakód - nem tudja betölteni a favicont - de nincs is rá hivatkozva, tehát nem értem miért dobja ezt a hibát.
/nem tudom hogy tudok ide kódot beszúrni ezért csak írni tudom, hogy tuti minden ugyanaz mint neki/ -
disy68
aktív tag
Amikor lekéred az új adatot, amivel bővíted az oldalt, akkor megjeleníted a spinnert. Amikor betöltött az adat, akkor berakod a DOM-ba, ahova annak kerülnie kell.
Miután ez megvan, akkor ahova került az új tartalom, megnézed a tartalomban van-e új img, ezeket kigyűjtöd.
Itt lehet akár két lehetőség is
- Megszámolod mennyi van, majd feliratkozol a képek load és error eseményeire és amikor bármelyik bekövetkezik, akkor kivonsz egyet a számlálóból, ha elérted a nullát, akkor elrejted a spinnert.- Vagy a képeket beburkolod egy-egy Promise-ba a resolve/reject a kép load és error eseményeire következik be. Bevárod az összes Promise-t és elrejted a spinnert.
ha van egy images nevű tömböd, a képekkel, abból így lesz egy promise lista:const imagePromises = images.map(image =>
new Promise((resolve, reject) => {
image.onload = () => {
console.debug('image loaded', image);
resolve(image);
};
image.onerror = () => {
console.error('image not loaded', image);
reject(image);
};
})); -
Taci
addikt
Ha már feljött a window load event témája:
Az oldalamon infinite scroll-lal töltöm be a tartalmat. Egyetlen egy oldal, ahol görgetéssel jön az újabb és újabb tartalom.
Amikor betölt az oldal, ott meg tudom jeleníteni a töltő ikont addig, amíg az oldal teljesen be nem tölt.
document.readyState === "complete" vagy akár a window.onload is. (A logból és a leírásból látom, hogy a window.onload adja a pontosabb állapotot, de ez mindegy is most.)document.onreadystatechange = function() {
if (document.readyState !== "complete") {
spinnerShowHideToggle("spinnerShow");
} else {
spinnerShowHideToggle("spinnerHide");
}
};
A gondom az, hogy mivel ugye az oldal maga már betöltött, ezért ahogy folyamatosan fűzöm hozzá az újabb és újabb tartalmakat, az már nem számít bele az oldal betöltésébe, így a fentieket egyáltalán nem triggereli.
Hogyan tudom az így pluszban hozzá fűzött tartalmaknál is megjeleníteni a töltő ikont addig, amíg az elemekhez tartozó képeket be nem tölti teljesen?
Van egy sablon html feed_item, azt tölti fel a szükséges adatokkal minden új elemnél újra és újra. Ezeket az img tageket kellene valahogy figyelnem? Vagy mi ennek a jó módja?
Vagy van valami event, amit lehetne figyelni?Köszi!
-
Jim-Y
veterán
válasz
Chrystall #8226 üzenetére
Elso lehetoseg, `defer` tag https://betterprogramming.pub/improve-page-load-performance-with-these-different-script-loading-techniques-b0d912eae7b1
Masodik lehetoseg, window load event https://developer.mozilla.org/en-US/docs/Web/API/Window/load_event
-
Chrystall
senior tag
Emberek, el lehet valahogy érni hogy ez a script működjön? Csak így lehet, hogy a script a detektálni kívánt elem előtt van. Vagy egyetleg valami más megoldás erre? A sorrendnek muszály ennek lennie.
<script>
document.getElementById("box").innerHTML ="Hello";
</script>
<div id="box" style="display:inline-block;width:90%;height:50px;text-align:center;color:black;">
</div> -
martonx
veterán
válasz
kw3v865 #8218 üzenetére
ES6 module syntax-al kell megírnod a javascriptedet, és valamilyen csomagolóval compile-olni a kimenet javascriptet a cégén. PL. webpack erre a legelterjedtebb.
Elsőre zavarónak hathat, hogy compile-olni kell a javascriptet, de ha belejössz, akkor már tök természetes lesz, miközben van egy csomó előnye ennek a megközelítésnek. -
nevemfel
senior tag
válasz
kw3v865 #8218 üzenetére
<!DOCTYPE html>
<html>
<head>
<meta
name="viewport"
content="initial-scale=1,maximum-scale=1,user-scalable=no"
/>
<link rel="stylesheet" href="maplibre-gl.css" />
<style>
#map {
position: absolute;
top: 0;
bottom: 0;
width: 100%;
}
</style>
</head>
<body>
<div id="map"></div>
<script type="module">
import { Map, GeolocateControl } from './maplibre-gl.js';
const mapTilerKey = "get_your_own_OpIi9ZULNHzrESv6T2vL"; // https://cloud.maptiler.com/account/keys/
const map = new Map({
container: "map",
style: `https://api.maptiler.com/maps/hybrid/style.json?key=${mapTilerKey}`,
center: [1, 15],
zoom: 3
});
map.addControl(
new GeolocateControl({
positionOptions: {
enableHighAccuracy: true
}
})
);
</script>
</body>
</html>
Innen lehúzhatod a css-t: [link]
Ez meg a js: [link]Nem egyszerű megoldás, de ez a lib eléggé friss még. Majd alakul.
-
Silεncε
őstag
válasz
Deathunter79 #8220 üzenetére
Böngésző cache clear megvolt?
-
Deathunter79
tag
Sziasztok!
SSL telepítés óta nem jön be az oldalam, csak az én gépemen firefox, chrome, opera böngészővel. Explorerrel behozza. Az én gépemen kívül mindenkinek működik az oldal.A firefox konzol ezt írja
[Exception... "Favicon at "https://"WEBOLDALAM.hu"/favicon.ico" failed to load: Forbidden." nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/FaviconLoader.jsm :: onStopRequest :: line 253" data: no]Tud valaki segíteni, hogy ne kelljen újra raknom a windowst?
-
coco2
őstag
válasz
kw3v865 #8218 üzenetére
Amit hirtelen találtam arról az importról, hogy a browser fér hozzá az anyaghoz, és előkészíti neked böngésző kiegészítésként az erőforrásait. Magát a file-t te nem kapod meg. Gyaníthatóan licencelési kérdés van mögötte. Tényleg vicces, hogy képesek voltak ilyesmit is fejleszteni.
-
kw3v865
senior tag
Sziasztok!
Továbra is nagyon kezdő vagyok (vagyis újrakezdő, több mint 10 éve tanultam kezdő szinten a nyelvet), ezért lehet, hogy hülye kérdés: adott egy GitHubos JS függvénykönyvtár, amit használni szeretnék teljesen offline módon, magyarul le akarom tölteni. Konkrétan erről van szó: https://www.skypack.dev/view/maplibre-gl
Itt egy példa alkalmazás: https://codepen.io/klokan/pen/WNoZRyxRégebben mindig úgy csináltam, hogy normálisan hivatkoztam bármely JS függvénykönyvtárra a HTML-ből így, aztán ha kellett, letöltöttem a webszerveremre:
<script src='valami.js'></script>
Ez a mostanában népszerű import-os megoldás számomra teljesen új. A célom az lenne, hogy egyben letöltsem az egészet a webszerveremre, és behivatkozzam a klasszikus módon. Azonban itt nem tálok ilyen lehetőséget, mert oké, hogy fenn van minden az src könyvtárban, de nem lehet ezt a hagyományos módon, egyben elérni? Tehát "ömlesztve" egy fájlban sehol nem találom. Megjegyzem, ezt más egyéb open-source JS-nél is tapasztalom mostanában.import *-gal elvileg hozzáférek az egészhez, de nekem "normálisan" kellene, egy fájlba kiírni.
Tudtok esetleg erre valami jól bevált megoldást?
-
coco2
őstag
Nem cookie-t hoz létre, hanem adat file-t. Korlátos mérete van, szóval csak valami személyi cucc fér bele. 5 megára számíthatsz, többre nem. Adatkezelési tájékoztatót írni róla alkalmasint jogi rémálom, ha oda személyes adatokat pakolnál. Rendesen csúnyán fog kinézni adatbiztonsági kockázatként.
-
-
Sziasztok!
Az lenne a kérdésem, hogy ha a Weboldalamon használnék Window localStorage-t, az Cookie-nek számítana? Úgy értem, hogy létrejönne-e Cookie a felhasználó gépén?
Előre is köszönöm a választ.
-
Silεncε
őstag
válasz
nevemfel #8205 üzenetére
Ez nem azt csinálja, amit a kérdező gondol: itt létrehozol benne egy üres objectet, a megadott paraméterekkel, nem pedig a formátumát adod meg. Ez egyrészt jelenthet gondot amikor iterálni akarsz rajta (lesz egy üres, semmire nem jó object) másrészt pont azt a hatást nem fogja elérni, amit a kérdező szeretett volna (nem lesz "kényszerítve", hogy minden object így nézzen ki)
-
kw3v865
senior tag
Sziasztok!
Kezdő vagyok JS-ben, és a következő problémára keresem a megoldást már egy ideje:
a célom, hogy létrehozzak egy olyan tömböt, amelynek van n db eleme, és mindegyikhez tartozik 2 property, de úgy, hogy mindkét propertryje egy-egy tömb. Továbbá, a létrehozásakor teljesen üres, csak a struktúrája jön létr, később töltöm majd fel.
Nagyjából így:var objArray = {prop1[], prop2[]}[]
Természetesen, ez szintaktikailag nem jó. Szerintetek hogyan lehetne ezt szépen megvalósítani?
-
sztanozs
veterán
Ez a fajta asszociatív tömb nem létezik JS-ben, a legközelebbi az egy objektum, aminek string paraméterei vannak (ahogy át is jön json-ban). Ez nem tömbbe kell beleerőszakolni, hanem meg kell tartani objektumnak és stingként kell hivatkozni az elemekre:
const json = '{"0":0, "5":0}';
const obj = JSON.parse(json);
console.log(obj[0]);
console.log(obj[5]);
console.log(obj);
obj[8] = 1
console.log(JSON.stringify(obj));
> 0
> 0
> Object { 0: 0, 5: 0 }
> "{"0":0,"5":0,"8":1}"
A számból álló kulcsokat tényleg nem szereti JS, mert az objektum kulcsai csak stringek lehetnek.
Új hozzászólás Aktív témák
Hirdetés
- Shield TV-t csinált a Shieldből az NVIDIA
- Samsung Galaxy A53 5G - kevesebbet többért
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos autók - motorok
- Hardcore café
- Medence topik
- sziku69: Fűzzük össze a szavakat :)
- Hisense LCD és LED TV-k
- exHWSW - Értünk mindenhez IS
- Nvidia GPU-k jövője - amit tudni vélünk
- További aktív témák...
- X13 Yoga Gen2 13.3" FHD+ IPS érintő i5-1135G7 16GB 256GB NVMe ujjlolv IR kam aktív toll gar
- HP Elitebook Folio 9470M laptop (14/i7-G3/6GB/256SSD)
- iPhone XS Max 64GB Független Újszerű/1 hónap gar./Akku 100%/p4303
- Dell Latitude 5490 14" HD i5-8250U 16GB DDR4 256GB SSD gar
- LG 45GS95QX-B 45" ÍVELT OLED MLA WQHD 240HZ 0.03 MS GAMING MONITOR
- TELJES KÖRŰ IT BESZERZÉS
- DDR3 BAZÁR! 8GB 16GB 1333MHz 1600MHz 2400MHz DDR3 memória garanciával hibátlan működéssel
- AKCIÓ! Apple MacBook Pro 16 M4 Pro - M4 Pro 24GB 512GB SSD garanciával hibátlan működéssel
- Dell USB-C, Thunderbolt 3, TB3, TB4 dokkolók (K20A) WD19TB/ WD19TBS/ WD22TB4, (K16A) TB16/ TB18DC
- BLUESUMMERS NVMe SSD adapter
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest