-
Fórumok
Mobilarena - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
-
lanszelot
addikt
-
nevemfel
senior tag
Igazad van, az innerHTML sem biztonságos:
There is one built-in safeguard in place, though. Just injecting a script element won’t expose you to attacks, because the section of the DOM you’re injecting into has already been parsed and run.
// This won't executevar div = document.querySelector('#some-div');div.innerHTML = '<script>alert("XSS Attack");</script>';JavaScript that runs at a later time, though, will.
// This WILL rundiv.innerHTML = '<script deferred>alert("XSS Attack");</script>';// This will, toodiv.innerHTML = '<img src=x onerror="alert(\'XSS Attack\')">';Ez a megoldás viszont ígéretesnek tűnik:
If the third-party content is allowed to contain markup, a helper library like DOMPurify will remove any markup that’s not part of a secure whitelist before injecting it.
-
nevemfel
senior tag
Lehetséges, bár leutóbbi emlékeim szerint nekünk pont az volt a problémánk, hogy innerHTML esetén a htmlbe belinkelt, vagy beágyazott script nem hajtódott végre. De már rég foglalkoztam a témával, szóval majd utánanézek ennek.
-
Mr. Y
őstag
-
martonx
veterán
Egyértelmű, de ez már a CSS bénasága, a JS viszont egyszerűen nem erre való, noha nyilván a JS-el is lehet stílusokat piszkálni. Légyszi, ne védjük a rossz gyakorlatokat, hanem segítsünk, hogy mi a jó gyakorlat.
-
vlevi
nagyúr
-
Mr. Y
őstag
Láttam már pl 4-5.000 soros weboldalakat. Amit ha valaki átgondoltan csinál meg, akkor nem lesz több pár száz sornál. Egyébként nem tudok neked hivatkozást adni a Google tiltásról, ezt egy Webprogramozótól hallottam. Hogy van-e igazság tartalma, azt nem én fogom eldönteni.
-
Mr. Y
őstag
Szeretek mindent a lehető legegyszerűbben csinálni. Ráadásul úgy, hogy nem függök senkitől.
Nem tudom, milyen programra gondolsz, ami több ezer sort vesz igénybe. Ha nem egy 3D komplex 8 órás menetidővel rendelkező, böngészőből futtatott játékot írsz, akkor hová használsz ennyi sort? Ilyen méreteket már a Google keresője is tiltólistára tesz. -
Mr. Y
őstag
Értem, köszönöm az információt. És egyben ilyen téren csinálja most azt az Apple, amire gondolok...
-
Mr. Y
őstag
-
Mr. Y
őstag
-
lanszelot
addikt
Köszönöm szépen mindenkinek a segítséget
-
alratar
addikt
-
coco2
őstag
A redirect-ek környékén kotorásztam anno, hogy js-ből megállapíthassam a szerver címét, ahova egy redirect küldött (terhelés osztáshoz kellett). Az régebben működött, aztán letiltották. Akkor találtam stackoverflow-n anchorra vonatkozó tippet adni egy srácnak (#-t rakni a cím végére), hogy az legalább lekérdezhető. És kapta az a tanács a lehurrogást, hogy az is egyszer működik, egyszer nem. Aztán félre raktam a témát a magam részéről, és azóta nem foglalkoztam vele.
-
coco2
őstag
Erről a search dologról anno azt találtam, tökéletesen megbízhatatlan. És letettem róla. Te látod ezt a search-ot működni napi szinten saját magad mindenféle böngészővel?
-
Mr. Y
őstag
-
lanszelot
addikt
-
coco2
őstag
A form submit eleme jelenleg ez:
<input type="image" src="login_button.png" name="submit_0"> -
nevemfel
senior tag
Az miért nem jó, hogy fetch-el (vagy ha szélesebb támogatás kell, akkor a jóöreg XMLHttpRequest) csinálsz egy POST requestet a click eseményre? Miért kell ehhez a location?
nevemfel
okosabb-tapasztaltabb
Hát akkor sajnos rossz helyen kopogtatsz
egyébként kb 2 évig használtam TS-t Angularral (ez már lassan egy éve, most egy pure JS-React projekten dolgozom), én szerettem. Az, hogy muszáj minden változóhoz/konstanshoz típusdeklarációt írni sztem csomót javit a kódon (vagy pl a generikusok, az is segített nekem egy csomószor). Bár az tény, hogy nem csodaszer ez se, TS-ben is lehet szar kódot írni ahogy a JS kód se feltétlenül rossz.illetve amit még nagyon szeretek: nekem a VSCode a bevált editor, kb mindenhol azt használom. Ez ugye beépítetten hozza a TS-t, szóval pl ha van egy npm package-ben .d.ts, akkor az IntelliSense auto felismeri és az alapján segít.
Hát akkor sajnos rossz helyen kopogtatsz
egyébként kb 2 évig használtam TS-t Angularral (ez már lassan egy éve, most egy pure JS-React projekten dolgozom), én szerettem.
Máris több tapasztalatod van vele, mint nekem. -
coco2
őstag
Az miért nem jó, hogy fetch-el (vagy ha szélesebb támogatás kell, akkor a jóöreg XMLHttpRequest) csinálsz egy POST requestet a click eseményre? Miért kell ehhez a location?
nevemfel
okosabb-tapasztaltabb
Hát akkor sajnos rossz helyen kopogtatsz
egyébként kb 2 évig használtam TS-t Angularral (ez már lassan egy éve, most egy pure JS-React projekten dolgozom), én szerettem. Az, hogy muszáj minden változóhoz/konstanshoz típusdeklarációt írni sztem csomót javit a kódon (vagy pl a generikusok, az is segített nekem egy csomószor). Bár az tény, hogy nem csodaszer ez se, TS-ben is lehet szar kódot írni ahogy a JS kód se feltétlenül rossz.illetve amit még nagyon szeretek: nekem a VSCode a bevált editor, kb mindenhol azt használom. Ez ugye beépítetten hozza a TS-t, szóval pl ha van egy npm package-ben .d.ts, akkor az IntelliSense auto felismeri és az alapján segít.
Mert természetesen megtartanám az eredeti funkcionalitást. A <form> submit esemény lapot tölt újra.
Csúnya volt az eredeti gomb a form submit-hoz, lecseréltem image-re (a form elem bármi image-et is elfogad submit elemként). Viszont így nincs gombmegnyomás anim, ami bénán néz ki. Azért akarok nyomógombot.
Viszont akkor meg form submit nem lesz
Szóval marad a window.location.assign(). De ehhez meg POST paramétert adni nem tudok.GET paramétert tuti adni tudok hozzá, azt megnéztem. De ha tudok POST paramétereket adni hozzá valahogyan, jobban nézne ki, hogy a megjelenített oldal címbe nem kerülnek bele a get paraméterek. Nem mintha jelenleg túl sok lenne, de akkor is randa
-
nevemfel
senior tag
De mondom, lelked rajta.
A lelkem az úré. Minden másra ott van a javascript.

Szerk: Én C64 basic-en kezdtem, aztán jött a Pascal 6-7, ES1-2-3-5, PHP 3-4-5-7, hozzá a JAVA 1.2, és egyszer kénytelen voltam alámerülni a COBOL gyönyöreibe. Szóval lehet, hogy ez csak valamiféle generációk közti megnemértés.
-
nevemfel
senior tag
Hát, promise még hagyján, de arrows functions? Mi haszna van, azon kívül, hogy 8, neadjaisten 10 karakter helyett kettő karaktert kell begépelni? Cserébe a szintaxista egy rakás szemét.Tudom, this binding ... nem használok this-t.
-
_ak_
addikt
Igen, mivel a hook visszatérési típusa nem
IAccount, hanemIAccount | nullunion, ezért csak simanIAccounttípus nem lehet a tároló konstans típusa. Az account konstans típusa legyen ugyanúgyIAccount | nullés úgy már jó lesz (a ?. le fogja kezelni, ha ott null van (de azt is kezeli, ha undefined), olyankor a string konstans értéke is undefined lesz)Köszi, végül ez lett belőle:
const account: IAccount | null = useAccount(accounts[0] || {});
const customProp: string | undefined =
account?.idTokenClaims?.extension_customProp;Ahogy mondtad az AccountInfo lehet null is, emiatt a customProp lehet undefined is), amit használata előtt ellenőrzök, így a helyére került minden.
Jim-Y:
Kipróbáltam ezt is, de ugyan az maradt a figyelmeztetés.
coco2:
Távol álljon tőlem, hogy megmondjam a frankót, de ha engem kérdezne valaki, hogy érdemes-e a TS-el foglalkozni, akkor azt tanácsolnám, hogy ne is kezdjen bele semmibe anélkül, legalábbis, ha programozásból akar megélni és JS vonalon mozog.
-
_ak_
addikt
Szerintem: Az useAccount visszatérhet sima objecttel is (én erre következtetek a paraméterben átadott üres object miatt)? Akkor viszont a TS jogosan reklamál, hiszen ott az account típusa nem IAccount lesz, hanem
IAccount | object“union”, az objecten pedig nem fogja megtalálni az adott propot.Illetve az az IAccount típusdeklaráció sincs szerintem jó helyen, annak az account konstanson kene legyen, a customProp az interface szerint string típusú
Valóban, figyelmetlen voltam a customProp egy string a végére és rossz helyen deklaráltam.
const account: IAccount = useAccount(accounts[0] || {});
const customProp: string = account?.idTokenClaims?.extension_customProp;Így megoldódik a customProp kérdése, de az accountra ezt kapom:
TS2322: Type 'AccountInfo | null' is not assignable to type 'IAccount'. Type 'null' is not assignable to type 'IAccount'.
A useAccount:
// Given 1 or more accountIdentifiers, returns the Account object if the user is signed-inexport declare function useAccount(accountIdentifiers: AccountIdentifiers): AccountInfo | null; -
polymorphin
csendes tag
Postcss, postcss-preset-env-el lehet, ez is a fentebb emlitett caniuse-bol dolgozik.
Ha nem tamogatja a HTML5-ot a bongeszo akkor lehet mondeni hogy igy jart"szétesve inkább ne jelenítse meg az oldalt sehogy, helyette egy információs lap, hogy használd ezt vagy azt a böngészőt."
<noscript> - HTML: HyperText Markup Language | MDN (mozilla.org)"Javascriptek futását letiltja teljesen. Na erre is fel akarom készíteni"
Ugy lehet felkesziteni hogy nem irsz egy sor JS kodot sem -
coco2
őstag
A #8640-et megtaláltam. Feltételezem, arról van szó.
Amit a #8649-ben írtam, arra vonatkozó célzás, hogy találkoztam már ügyfél igénnyel, amikor valaki nagy sebbel-lobbal nekiállt nagyon tutit alkotni, és akkor derült ki, igazából fogalma sincs, hogy mit akar, vagy hogy egyáltalán mire hasonlítson? A #8646 + #8647 kísértetiesen arra hajaz.
De ha nagyon félre értettem volna valamit, gondolom, majd felvilágosítasz.
-
Mr. Y
őstag
-
coco2
őstag
Ha az összes "nagyobb" böngésző gyártóhoz van prefix (és ahogy elnézem, van), akkor a prefix mentes neveket melyik használja
-
Taci
addikt
Én nem tudok olyanról, hogy el lehetne rejteni a JS kódot. Azok a data propertyk nem JS-t rejtenek, hanem a HTML5 szabványban már tudsz ilyen kezdetű attribútumokat definiálni, amikben bármilyen adatot tárolhatsz (például mint a be rakott kódrészben a gombhoz tartozó custom adatok). Errol itt tudsz olvasni: [link]
Az oldal védelméről: ha egy sima static oldalról van szó (tehát nincs input, vagy esetleg minden csak localban van tárolva) ott sok mindent nem tudnak támadni az oldalon keresztül (ott arra kell figyelni, hogy a host webserver ne legyen törtető, hogy mondjuk módosított, káros kódot tartalmazó fájlok ne kerülhessenek fel). Ha pedig van interakció (akár mondjuk egy régebbi, PHP-s oldal, akar egy újabb JS-es webapp, ami mögött van egy REST-API) ott úgyis a “backend” részen külön validalni kell mindent mert ugye az első számú szabály, a userben SOSEM bízunk (tsystems likes this
)Köszönöm a részletes választ.

És persze elrontottam a kérdést, rossz példát hoztam fel, mert a gombokon, elemeken lévő onclick-függvényhívásokra akartam volna rákérdezni - azért is hoztam a félkövérre állítós példát mellé.
Szóval arra irányult volna eredetileg a kérdés, hogy van-e hátránya annak, hogy ha
onclick-ként állítom be magában a HTML kódban a gombra, mit csináljon (függvényhívás), azzal szemben, ha a gombnak csak meg van adva az osztály pl. hogyclass="btn-toggleDarkMode", aztán egy külső JS-ben pedig definiálva van hozzá egyaddEventListener, és ott történik a JS hívása?Nyilván szebb, tisztább a kód, ha csak egy class van megadva a gombnak, viszont emiatt ugye több kódolás is a háttérben.
A T-s dologra pedig nem reagálok.
-
lanszelot
addikt
Szerintem alapvetően két úton tudsz elindulni. Kérdés: mennyire szeretnéd, hogy dinamikus legyen?
Első út: ez akkor működik, ha elég a beégetett adat. Találtam egy ilyen codepent (nem én csináltam) [link], ez nagyjából olyan, amit szeretnél, de nyilván ki kell egészíteni.
Második út: canvas+JS. Ez (szerintem) muszáj, ha dinamikussá akarod tenni (meg lehet oldani az elsővel is valszeg, de kihullik a hajad a CSS miatt). Ekkor kell a Pala által felvetett gráfelmélet is
Sose csináltam még ilyet, csak ötletelek
Az a példa nem az amit linkeltem.
A linken a csaldfa le van generálva, nem pedig fix.
Adatból kigenerálja azt amit láttok. -
Pala
veterán
Szerintem alapvetően két úton tudsz elindulni. Kérdés: mennyire szeretnéd, hogy dinamikus legyen?
Első út: ez akkor működik, ha elég a beégetett adat. Találtam egy ilyen codepent (nem én csináltam) [link], ez nagyjából olyan, amit szeretnél, de nyilván ki kell egészíteni.
Második út: canvas+JS. Ez (szerintem) muszáj, ha dinamikussá akarod tenni (meg lehet oldani az elsővel is valszeg, de kihullik a hajad a CSS miatt). Ekkor kell a Pala által felvetett gráfelmélet is
Sose csináltam még ilyet, csak ötletelek
A linkelt codepennél az a probléma, hogy egyetlen root node-ból (parent) indul az egész, miközben ugyebár minden (normális) embernek két szülője szokott lenni, emellett oldalágon beházasodást is kezelni kell és akkor jönnek még ilyen buktatók, mikor rokoni szálon házasodnak emberek és úgy lesz gyerekük, meg egyéb finomságok...
Ezért nem lehet fa-struktúrát használni, hanem általánosabb gráf kell ide, amiben a körmentességet biztosítani kell, hiszen az nem fordulhat elő, hogy a nagyapa fiának a fia a nagyapa apja is legyen. 
Fel kell állítani dummy adatokkal egy példa-családfát 20-30 emberrel, leképezni az egészet egy szomszédossági listába (adjacency list), ez alapján már ki lehet generálni rekurzívan valami otromba gráfot belőle, aztán lehet gondolkodni a formázáson. Szerintem ez utóbbi a nagyobb challenge benne, hogy miként lehet ezt átláthatóan prezentálni.
-
Taci
addikt
-
coco2
őstag
Ennek alapján még nem kellene baj legyen.
Van egy parent div, azt z-index 0-n tartom. Azon belul vannak a rétegek egymás alatt fölött ugyan annak a parent div-nek a kontextusában. Azok között már nincs alá/fölé rendelés, egyenrangúak. Elvileg.
Azt látom, hogy a főciklus végén kidobom konzol logba egy adott div-hez tartozó z index-et, folyamatosan 1-et lát a javascript, de 5-öt a dev tools (bármikor megállítom, 5-öt ír vissza). Ha a megjelenítés lehet is trükkös, az a változó egy számszerűsített érték. Az hogy térhet el annyira? Kb olyasminek tűnik, mintha a z-index read-only lenne, és hiába írom át a zIndex-et, az nincsen hatással a z-index-re. A linkelt blog ilyesmire nem tér ki
-
coco2
őstag
Tudok olyat csinálni, hogy a cache-t csak adott domain-re kapcsoljam ki? Fejlesztéshez okés, hogy útban van, de teljesen kikapcsolni egy kicsit problémás általános célokra is használni a böngészőt. Cache nélkül halál lassú minden
-
coco2
őstag
-
lanszelot
addikt
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.
-
lanszelot
addikt
-
lanszelot
addikt
-
Deathunter79
tag
-
nevemfel
senior tag
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)
Csak kiigazítottam a szintaktikát. Javascriptben változónak nyilván nem tudsz adni típust.
-
Taci
addikt
Az újnál a widget maga egy iframe-ben van (kvázi mint egy új oldal az oldalban). Ha kiválaszt a user egy új helyet, akkor az hív egy
postMessage-et (ezzel tudsz window-ok között kommunikálni, ahogy iframe-window között) és elküldi az újonnan beállított adatokat (amire valszeg az iframe-ben van téve egyeventListenerés az futtatja le azinit-et.Ez is járható út (bár nekem fura), de ha ezzel mész, a példakódban mindenképpen cseréld ki a
postMessagemásodik paraméterét, ahol a példában "https://weatherwidget.io" van a saját oldaladra (vagy *-ra, de ezt nem szabad), különben domain mismatch miatt nem lesz kiküldve az event és nem fog működni (postMessage: [link])Köszönöm szépen ezt a magyarázatot is!

-
Taci
addikt
Ah, nagyon szépen köszönöm!!! Így végre úgy működik, ahogy szeretném! Köszönöm!
Annyi ideget megettem vele - persze ez az én hibám, még nem teljesen tiszta, mi-hogyan működik. De azért kérdezek, hogy gyakorolhassak, megértsem, fejlődjek, tanuljak. 
A példakód alapján már 1 fokkal érthetőbb, mi történik.
Ahogy látom, ez a megoldás querySelector-ral "behúzza" a megfelelő Class-t, aztán az ahhoz tartozó attribútumoknak új értékeket állít be a kiválasztott városok alapján. Majd ezután meghívja a JS-ben (widget.min.js) lévő inicializáló __weatherwidget_init() függvényt.A JS-kód tetején a pen-ben írja, hogy van egy újabb, jobb változat is:
https://codepen.io/weatherwidget/pen/vvPrRN
Ez már egy fokkal bonyolultabb (számomra így elsőre), de nekikezdek és próbálom felfogni, mi-merre.
Viszont az egyből feltűnt, hogy nincs benne az előző megoldásban lévő függvényhívás a JS-ből (widget.min.js). És nem is tölt újra, ahogy az előző megoldásban, itt csak simán lecseréli az adatokat, a tartalmat, és nem távolítja el és tölti be újra az egész widget-et.Erre esetleg kérhetnék egy magyarázatot? A jövőre nézve, a saját szkriptjeimre, hogy tudjam, mi-miért működik így az első változatnál (miért kell az ..._init() függvényhívás), és miért működik így a második változatnál függvényhívás nélkül.
Köszönöm! (Már eleve ezt a példakódot is!
) -
Keem1
veterán
egyes device-okat reprezentáló div-ek is ajax jsonból jönnének
Ez így biztos jó megoldás? HTML kódot küldesz JSON-ban? Vagy rosszul értem? JSON-ban adatot kell küldeni, majd abból kigenerálni a DOM elemeket.
Egyébként ezt a kodreszletet megmutathatnád, de van rá egyszerű (bár nem olyan szofisztikált) megoldás: az event bubbling miatt a
document-re is tehedet a listenertNeem, természetesen JSON a fogadott data.
A "bajom" az, hogy beágyazott webserverrel kell dolgoznom (C# HTTPListener), így a HTML-en felüli dinamikus részt muszáj JSON API-val és kliensoldali scripttel megoldanom. Ez utóbbihoz viszont nem értek igazán, legalábbis eddig kevés dolgom volt még vele.
$.getJSON(hubaddress+"/smarthomeapi/"+homeexternalid+"/devices", (responsejson) =>
{
$.each(responsejson, function (key, val)
{
console.log("Filling up devices box: " + val.displayname);
$(".devices").append("<div><span class='icon icon"+val.devicekind+"' data-homeid='"+val.homeexternalid+"' data-deviceid='"+val.deviceid+"' data-action='ledtoggle'></span>"+val.displayname+"<small>"+val.manufacturer+"</small></div>");
});
}); -
lanszelot
addikt
-
Pala
veterán
Én se arra gondoltam, amire az előző kolléga értette, hanem hogy egyáltalán nem ír CSS-t aka nem webes fejlesztő, erre vonatkozott a disclaimer is

Nekem most az emotiont kell megtanulni React projekthez, előtte Sass-t használtam, a Sass-al nem volt annyira nagy bajom, viszont ezt a CSS-in-JS-t én kicsit kreált problémának érzem, de fixme...
Az viszont kb totál mindegy, hogy mi hány sor griddel, ha a támogatott böngészők fele fejreáll a gridtől...
Reacthoz talán a legjobb megoldás (CSS-in-JS helyett) a Sass/SCSS modules. Scope-olható és nem kell beleturmixolni a JS-be. Az ilyen Radium meg Styled Components-féle mutációktól én fejre állok.
Ezt az Emotiont nem ismertem, de most gyorsan belenézve ez is kb. ugyanaz a förmedvény, mint a Styled Components. -
venic
csendes tag
JSON.parsegondolom megvolt, utánaname.id.idopontokés onnantól trükkös, mert kicsit szar ez a felépítés, az időpontok nem tudom, miért nem tömbben vannak, hogy lehessen iteralni. De így is megoldható, csak aname.id.idopontokobjecten kell végigmenniObject.entries()-elvalahogy így:for (const [key, value] of Object.entries(object1)) {
const valami = value.idopont;
// ...
}Nagyon szépen köszönöm a segítséged

-
alratar
addikt
-
alratar
addikt
-
Aureal
őstag
-
crocy
tag
A JSF az inkább az Angular megoldására hasonlít (ha jól emlékszem, az egyetemen egy minimálisat találkoztam csak JSF-el), az Angularnál ugye a HTML fájlba írsz TS expression-öket, de ott se bonyolultakat (nálunk ha túl sok TS kód van a templateben, segbebillentés jár érte
)Egyébként most a WebASM megjelenése óta elkezdett éledezni a remény, múltkor láttam egy WebASM alapú megoldást, ahol Pythont tudtad hasonlóan a JS-hez használni böngészőben (szóval DOM csesztetés, stb)
es ez a WebASM nagyvonalakban hogyan müködne?
minden ez altal tamogatott nyelvbe kerülnenek uj elemek amelyekkel lehetne piszkalni a DOM-t ami js-re fordulna? -
togvau
senior tag
nekem tetszik abból a szempontból, hogy olyasmi mint a JSF volt, bár abban is azért nagyobb a rend. Ott is nyomathattál a template-be java kódot, de azért nem volt ajánlott, sem jellemző. React jsx-nél meg tele fan kóddal a template, ami nagyon kaotikus tud lenni.
Bár amúgy kaotikus, és ták... hát a JS maga ilyen, hisz egy kaotikus, tákolt ökoszisztéma, aminek sok éve ki kellett volna halnia, ha nem lenne kizárólagosan támogatott a böngészőkben. (rohadjál meg m$)
-
NoX
senior tag
Ahogy sztanozs is írja, ennek nem sok köze van a JS-hez, ez a számítógépes számábrázolás pontatlansága (IEEE754 és satöbbi) és minden nyelven így működik (ezért mondták nekünk az egyetemen, hogy float számok esetén sosem egyenlőséget vizsgálunk, hanem hogy a két szám különsége egy megadott threshold alatt van-e, mert különben igen szívás lesz debugolni...)
Jogos, túl közhelyet használtam és sarkítottam a "JS logic"-al.
Közben pontosítottam és univerzálisabbá tettem az ellenőrzésem, figyelembe véve, hogy mennyi tizedesjeggyel van dolgom.
Ezek most itt beégetett adatok a konkrét példa miatt, de ezekre van függvény, ami megadja az értéküket, csak nem akartam bonyolítani.
var quantity = 1.65,var minQuantity = 0.55,var decimalsCount = 2;if ((Math.round(quantity * Math.pow(10, decimalsCount)) % Math.round(minQuantity * Math.pow(10, decimalsCount))) / Math.pow(10, decimalsCount)) { -
NoX
senior tag
Köszönöm szépen!
Annyi javítást eszközölnék rajta, hogy az egészet még elosztanám 100-al, hogy megkapjam a helyes maradékot, ha van.
(Math.round(1.65 * 100) % Math.round(0.55 * 100)) / 100Ebben a példában a
0.55 * 100miatt kell aMath.round()ahogy látom, mert0.55 * 100 = 55.00000000000001JS logic

-
martonx
veterán
Én azt sem értem, hogy tudott egyáltalán a react + redux így közösen elterjedni

Engem pont a redux tántorított el végleg a react-tól, amúgy redux nélkül nem is olyan rossz (jónak se mondanám, de nem akarok flame-et indítani). -
Rimuru
veterán
Új hozzászólás Aktív témák
-
Fórumok
Mobilarena - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
- Teljesen ÚJ - iPhone 17 Pro 256 GB Kártyafüggetlen - Fóliás - 0 ciklus - Apple garancia
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- RYZEN 7 5700X3D (8 mag/16 szál, 96MB L3 cache)! GARANCIA/SZÁMLA (a Te nevedre kiállítva)!
- Intel Core i3-4160, 16GB DDR3 félkonfig - Alaplap, CPU, RAM, SSD, hűtő
- 2 darab Metalica VIP Superior 2 napos jegy csere 4 darab egynaposra
- HP EliteBook 655 G10 15" Ryzen 5 PRO 7530U 32GB RAM Garancia 2028.02.27.
- BESZÁMÍTÁS! Apple Mac Mini 2020 M1 8GB 256GB számítógép garanciával, hibátlan működéssel
- Lenovo Thinkpad L13,13.3",HD,i3-10110U.8GB DDR4,256GB NVMe SSD,WIN11
- Apple iPhone 14 Plus 128GB, Kártyafüggetlen, 1 Év Garanciával
- HP ProBook 445 G8 14" Ryzen 3 5400U, 8GB RAM, 256GB SSD, jó akku, számla, 6 hó gar
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

specificity rulz




![;]](http://cdn.rios.hu/dl/s/v1.gif)


