- gban: Ingyen kellene, de tegnapra
- gerner1
- Luck Dragon: Asszociációs játék. :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Alza kuponok – aktuális kedvezmények, tippek és tapasztalatok (külön igényre)
- sziku69: Fűzzük össze a szavakat :)
- djculture: Az elvileg már senkinek nem kellő HDD-k ára is egekbe emelkedett 4 hónap alatt
- eBay-es kütyük kis pénzért
- Gurulunk, WAZE?!
- Archttila: SMART tesztelés automatizálva: smartctl poller script Zsh-ban, RPi-re
-
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ékokPROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
-
Jim-Y
veterán
Sziasztok,
A TypeScript es tarsai temakorhoz szeretnek hozzaszolni, mert felek, hogy ha egy kezdo olvassa a topikot akkor veletlenul egyoldalu velemenyt fog leszurni.
Kedves kezdo javascriptes
Amiket ebben a topikban olvasol velemenyeket mind szubjektiv velemenyek es kezeld is oket ugy. Semmit ne vegyel keszpenznek, hanem probalj meg tobb forrasbol utanajarni, probalj lehetoleg hiteles forrasokbol taplalkozni.
ES6 tema
Oszinten szolva almomban sem gondoltam volna, hogy 2021-ben meg van akinek ez nem alap, es tenyleg, ha nem hasznalsz ES6 featuroket akkor abba a szereny taborba tartozol aki meg mindig osregi javascriptet ir. Forras: [link]
Igy az elejen leszogeznem, hogy barki johet azzal, hogy ez is csak egy survey a sok kozul, ami teljesen igaz, de mig a topik nezetet egy kezdo 5-6 ember velemenye alapjan kenyszerul leszurni addig ezt a survey-t tobb 10 ezren toltottek ki vagyis sokkal inkabb relevans mint a te vagy az en szemelyes velemenyem egy kezdo szamara.
TypeScript tema
Ha egy ember egy sajat prokten dolgozik akkor megertem, hogy valaki nem latja a TS adta elonyok zomet. Ha viszont egy csapatban masokkal, produktivan kell dolgozni akkor a TS igenis nagyon sokat segit ebben.Errol az oldalrol azt lehet leolvasni, hogy a Compile-to-JS nyelvek kozul a TypeScript ami leginkabb megy [link] Errol meg azt erdemes leolvasni , hogy az altalanos trendek szerint no az erdeklodes a TypeScript-re. Ez [link] azert erdekes mert a valaszadok tobbsege a Static Typing hianyat latja a legnagyobb hianyossagnak a nyelvben. Mit ad a TS a JS-hez? Static Typingot. Nem veletlen, hogy no a TS nemszerusege
TypeScript is exploding vagy egy GitHub statisztikaA szemelyes velemenyem az, hogy a TS elengedhetetlen ma egy munkat kereso szamara. Ha valaki koca-programozo es csak sajat szorakoztatasara programozik, akkor nem kell TS, ha valaki Freelancer akkor szerintem ki tudna tunni a tobbi freelancer kozul azzal, hogy TS-el statikusan tipusozott kodot ad az ugyfelnek, ha pedig valaki vallalati kornyezetben akar elhelyezkedni akkor kotelezo, mert igazabol nagyvallalati kornyezetben jon ki a TS igazi elonye, ami szerintem a kovetkezo(k):
- A nyelv analizalja a kododat igy kepes hibakat megtalalni benne. "When the TypeScript compiler compiles your code, it creates an Abstract Syntax Tree (AST) of it" forras. Ez egy csomo elonnyel jar. Peldaul emiatt sokkal jobb intellisense-t kapsz az IDE-ben emiatt tud olyan programozoi hibakra ramutatni amiket amugy nem vennel eszre
- Dokumentalja a kodod. Az hogy megirod egy fuggvenyhez a bemeneti es kimeneti ertekek tipusat egyben dokumentacios ertekkel is bir. Kinek? Magadnak kevesbe, mondhatnad, hisz te irtad a kodot tudod, hogy mukodik, de egy kollegad aki meg akkor nincs is a cegnel amikor a kodot irod, de majd neki kell atirnia, hat neki bizony sokat fog segiteni
- polimorf tipushelyes kodot tudsz irni. Mit jelent ez? Kepzeld el, hogy egy data-table widget-et fejlesztesz, amihez filter funkciot is kell irni. Nem tudod implementacio kozben hogy aki majd hasznalja a widgetet, a data-table-t az majd milyen tipusu oszlopokat fog felvenni de neked mar most ugy kell megirni a filter-t, hogy mukdojon stringekre, numberekre, arrayekre. Ha most beegetsz egy olyan kodot a widget-be ami az erteken valamilyen array function-t fog hasznalni az nem fog mukodni number tipusu ertekekre. Nyilvan ezt TS nelkul is meg lehet oldani, viszont a TS segit abban, hogy polimorf meg tudd fogalmazni a filter fuggvenyed.
- Mivel a TS compile-to-js ezert ha TS-t hasznalsz olyan JavaScript featuroket is hasznalhatsz mar ma, amit amugy nem tehetnel meg mert az adott syntax-sugar meg nincs szeleskoruen tamogatva a bongeszok altal. Hogyan? Meg tudod mondani a TS compilernek, hogy milyen verzioju JS-re forditsa a kodod
- Nem beszelve a sok apro nuanszrol amit kapunk a TS-el pl absolute path aliases, hogy csak egy hasznos dolgot emlitsek
---
En a munkamban mar most is mindenhol TS-t hasznalok, es nem is allnek neki TS nelkul egy uj projektnek, sajat projekteken meg vegyes, hogy hasznalok-e vagy sem. A projekt stilusa szabja meg. Egy blog-hoz nem hasznalnek mert ott kb csak statikus html oldalakat gyartok, kicsi a hibalehetoseg a JS kodban, mig pl ha egy Authorization Server-t probalok leprogramozni ott meg igen, mert ott nagy a hibalehetoseg amiben segit a TS. Arrol nem is beszelve, ha a projektet igy vagy mas emberek is hasznaljak -majd- akkor meg a tipusok amiket expozalsz sokat fognak segiteni masoknak.
-
Jim-Y
veterán
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;const account: IAccount = useAccount(accounts[0] || {} as IAccount); -
Jim-Y
veterán
ad1: ellenorizd hogy az npm global folder benne van-e a path-ban
ad2: input is kell a parancsnakUsage
$ parse-gedcom <input>
Options
--type, -s Output type (json, d3.json, dot)
Examples
$ parse-gedcom input.ged output.json -
Jim-Y
veterán
Az nem legenerálja hanem önmagában futtatja.
Az egy családfa program, amit a saját gépeden nézegethetsz.
A családfát kigenerálja magába az adatokból, de nincs export.Pala: pontosan így van, tanulnom kell, de mindenhol az van /mivel az alapokat megtanultam/, hogy kezdjek el csinalni valamit amit szeretnék, és a felmerülő problémákat megoldva tanuljak tovább.
Én nem akarok ebben dolgozni, a flash-es családfám kuka lett, és azt szeretném újra megcsinálni, csak ennyi érdekel. Tehat ez az amit csinálnom kell.
Fentebb is írtam, hogy fogalmam sincs, hogy kell tervezni, az sehol senki sem mondja el.
Nem tudom mi az első lépés, és mi a második, harmadik.
Pl ramdom szám generátor: kell egy gomb, majd javaban írok egy random szám generátort, hozzá rendelem a gombhoz , végül alert-tel kiiratom.
Ezt nem tudom, mit kell a családfánál.
Így nem tudok mi után utána nézni.Vannak javascripthez graf layouting packagek. En azokbol meritenek otletet. Pl
[link] ezt meg nem hasznaltam, de a viz.js-t mar igen, az atiranyit erre a package-re.
Szerintem ilyenekkel mar meg lehet csinalni amit szeretnel bar ez a feladat nem kezdoknek valo bonyolultsagu, inkabb halado szint. -
Jim-Y
veterán
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>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
-
Jim-Y
veterán
-
Jim-Y
veterán
Azt ugye tudod hogy az axios is csak egy absztrakcios reteg az xhr felett?!
-
Jim-Y
veterán
Valoszinuleg te ugy olvasod ki, hogy
half * (8)mivel nincs a half elott semmi ezert nalad az "semmi" osztva kettovel szorozva nyolccal.
De ez a programozasban, de meg a matekban sem igy van.
Inkabb tekints ra ugy mint sima matekban. Sima matekbaneredmeny = f(x)ahol f egy fuggveny ami tortenetesen azt csinalja, hogy a parameterben kapott szamot megfelezi. Innen mar konnyen eljutsz ahhoz, hogyhalf(x) ahol x=8az miert 4. -
Jim-Y
veterán
Sziasztok!
Egy egyszerűbb webes alkalmazás elkezdése előtt állok. Egyelőre csak kliensoldal lenne, szerveroldal nem kapcsolódna hozzá (beágyazva lenne egy már működő rendszerbe, amivel JS APIn keresztül kommunikálna). Külső JS libek is lennének használva.
Első körben Typescriptet gondoltam használni, mivel nem túl bonyolult és mégiscsak típusos, OO szemlélethez közelebb áll, mint a sima JS. Viszont teljesen tapasztalatlan vagyok, hogy kizárólag kliens oldalon használva milyen eszközzel lenne érdemes tesztelni, buildelni (pl. webpack)?
Vagy megoldható kéne legyen, hogy TSben írt, több modulból álló alkalmazás kizárólag egy tsc fordítás után böngészőben tesztelhető legyen?
Rajtad mulik
1. egyetlen ts fileod lesz -> eleg a tsc
2. tobb ts fileod lesz -> eleg lehet a tsc de akkor csak global valtozokon keresztul tudsz kommunikalni a modulok kozott es annyi <script> taged lesz a html-ben ahany fileod van
3. tobb ts fileod lesz es ezek fuggnek egymastol -> kell webpack vagy hasonlo, peldaul rollup. Nezd meg ezt -> https://github.com/rollup/plugins/tree/master/packages/typescriptEs ahogy irsz a typescriptrol nekem az jon le, hogy nem vagy tokeletesen tisztaban azzal, hogy mi is a typescript igy en a helyedben annak is utana olvasnek

-
Jim-Y
veterán
pár észrevétel:
- validációt érdemes tenni az input mezőre (minimum a BE oldalon legyen validálva)
- egy json error message hibaüzenetet nem jó practice input mezőbe beletenni
- resteknél a hibakezelés hiányzik
- cssben az !important használatát kerülni kellene
- "field" nevű class-t ne rakj egy egész div blockra
Jobb felhasználó élmény lenne ha animálódna a toggle.Koszonom az eszreveteleket

"validációt érdemes tenni az input mezőre (minimum a BE oldalon legyen validálva)"
Jim-Y: milyen validaciot? A user nem ir be semmit. A backenden van validacio az optionokre"egy json error message hibaüzenetet nem jó practice input mezőbe beletenni"
Jim-Y: ebben az alkalmazasban nincs ilyen"resteknél a hibakezelés hiányzik"
Jim-Y: console.error van csak a catch-eknel, ha nem egy toy projekt lenne nyilvan lenne benne ertelmesebb hibakezeles, de egyebkent igazad van, kiirni a konzolra de amugy nem csinalni semmit error eseten tenyleg nem a legjobb practice""field" nevű class-t ne rakj egy egész div blockra"
Jim-Y: bulma.io-t hasznalok, ott ezt igy talaltak ki"Jobb felhasználó élmény lenne ha animálódna a toggle"
Jim-Y: ha a lenyilo settings menure gondolsz akkor egyetertek.Udv
-
Jim-Y
veterán
-
Jim-Y
veterán
Szevasztok,
Ritkan jutok el oda, hogy egy toy projectet befejezzek, altalaban csak levonom a konzekvenciakat es annyi, de most befejeztem egyet es oszinten szolva tok fun volt megcsinalni es gyors!
Gondoltam akkor mar megosztom veletek. jamstack!
https://strong-password-gen.netlify.app/
edit: be van kapcsolva a sourcemap ha valakit erint
-
Jim-Y
veterán
-
Jim-Y
veterán
Sziasztok.
Tudom, hogy ez itt nem adok-veszek, de nincs valakinek elado YDKJS konyve, vagy ha ilyen nincs is, nem tudjatok honnan lehetne beszerezni (amazonos vasarlast kiveve)?
Ha mas nem lesz ugyis marad az Amazonos rendeles, de hatha mashonnan is be lehet szerezni. -
Jim-Y
veterán
"mert ez assembly, azaz mélyebben fut, több optimalizációt tartalmaz a befordított kód"
Szerintem ez az allitas teves. Javitsatok ki kerlek ha rosszul tudom, de "csak" annyi tortenik, hogy mondjuk a C kodod a JS engine futtatja meg. Es attol lesz ez gyorsabb mint a a Javascript kodod, hogy teljesen kimarad a parsing/compilation lepes, es AOT megkapja a binarisokat a motor.togvau:
"Miben lehetne jobb a JS ? Mindenben, főleg alapjaiban, struktúráiban, mindenben, hisz az egyetlen dolog amiben jó: támogatják a böngészők."
Ne haragudj, de ebbol a megnyilvanulasodbol sut a teljes fogalmatlansagod a temaval kapcsolatban. Megkerdezhetem, hogy mennyit tudsz alapjairol, strukturajarol?Meg azok szokták fikázni, akik használtak már eleget normális nyelveket
Definiald kerlek: "normalis" nyelv.En elkezdtem gepelni egy valaszt neki, de aztan rajottem, hogy teljesen felesleges. Ez cica-rage es mint olyan kar belemenni.
-
Jim-Y
veterán
Egyebkent igy altalaban azok szoktak fikazni akik nem tudjak hasznalni a nyelvet. Aki tudja hasznalni es erti az max konstruktivan mondja meg, hogy mi lehetne benne jobb. En utalom a JAVA-t mert egy sz*r. Konstruktiv volt mi?!
Amugy ha nem szereted a JS-t vagy nem erted van sok olyan nyelv ami compile-to-js azokat hasznalhatod. Sok olyan is van, ami mondernebb, es jobban oszerakott nyelv mint a JS pl Dart. Esetleg probald ki azt.
-
Jim-Y
veterán
-
Jim-Y
veterán
Félreértettél, nem a kliens implementációról beszélek (azt majd intézi mindenki magának), hanem a szerver implementációról. Én azon röhögök / sírok, hogy .Net fejlesztőként simán látom, meg tudom ítélni, hogy milyen .Net verziót használnak (elég megnézni az Endpoint url szintaktikájukat például, vagy látni, hogy olyan json serializációs hibák vannak a rendszerükben, amik még az ősi .Net Framework 4.5-nél voltak). Pont ugyanezen elvek mentén pedig csukott szemmel is ráismerek a 90-es évekbeli vb scriptes classic ASP-s SOAP endpointokra.
Nyilván bárki bármilyen nyelven kapcsolódhat hozzájuk, nem erről van szó, se nem érdekel a kiadott példa kódok, példa kliensek nyelve.
Arról van szó, hogy egy vadiúj fejlesztésnek hogy lehet .Net 4.5-tel és WCF-el nekiállni manapság, és ráadásul az elkészült produktumot hogy lehet legkorszerűbb eszközöknek hazudni.Na mondom rakeresek a gls api-ra, nem tudtam, hogy egyaltalan van igeny ilyen public api-ra, oldalukon -> Fejlesztoi dokumentacio -> Letoltes, filetype: pdf
melyik evben elnek ezek ahol az api dokumentaciot le kell tolteni!! Meg ha egy swagger.yaml-t kene letolteni azt mondom, hogy az oke..na mindegy. Mondanom sem kell ennel a pontnal annyira nem erdekelt, hogy le is toltsem 
-
Jim-Y
veterán
Sziasztok!
Azt szeretném megkérdezni, hogy az megoldható-e, hogy egy változóban lévő adatot kirakjak json fájlba?
Olyat már csináltam korábban, hogy PHP-ban kapott adatokat kiraktam json fájlba, majd ezt később felhasználtam JavaScript kódban, de most fordítva kellene, de nem tudom, ez igy megoldható-e egyáltalán. Illetve nem ragaszkodok a json fájlhoz, csak szeretném az adatot PHP-ban használni később. Nem tudom erre van-e esetleg valami jobb ötlet.
Köszönöm a segítséget előre is.Szerver oldalon node.js-ben lehetseges, termeszetesen. A bongeszobol nem lehet a lokalis fajl rendszert sem olvasni sem irni biztonsagi okok miatt.
-
Jim-Y
veterán
Ha mar megmutatjuk mi anti-pattern akkor ne mas anti-patternekkel tegyuk
Nem egy input vagy egy gomb dönti el magáról, hogy mennyi space van maga körül, mert így sosem lesz újra felhasználható a komponens. Az inline stylekkel ugyszint semmi baj nincs, objektiven gyorsabb egy weboldal betoltese ahol nem egy bazinagy css fajlban szerepel minden, de továbbmegyek, a legtobb css-in-js solutin is "inline" style attributumokkent irodik es run/build-time valik style tagekke.Nem ertem pontosan, hogy mi a "mas anti-patternekkel". Marmint elhiszem neked, hogy van, de nem ertem a kommentedbol, hogy mi az pontosan
Termeszetesen erdekel, le tudod irni megint kerlek? -
Jim-Y
veterán
Például a nagy kék felugró boilerplate bar miatt (Talán csak a GDPR felugrók az idegesítőbbek nála), a becsukhatatlan menük miatt (Egy kódokkal foglalkozó oldalon ilyen?) stb... Volt egyszer olyan nyűgje is hogy teljesen kifagyasztotta a gépet mikor a forkra kattintottam egy kódnál (De legalább ez már jó). Mobileszközön egy az egyben használhatatlan.
A codepent viszont jobban szeretem, de igazából a böngésző ablakot preferálom. Kódot mutogatni viszont végül is mindegy, hogy melyiket használja az ember."A kódod egyébként borzalmas"
Pontosan mi az ami borzalom rajta? Formailag oké, ezt most csak így összedobtam, de van esetleg más borzalom is benne?
Nem borzalmas, mert megcsinalja amit kell, viszont sok anti-pattern van benne, mondjuk, ugy, hogy nem tul elegans a kodod es igy biztos elbuknal egy ilyen minosegu koddal egy allasinterjun.
https://codesandbox.io/s/modest-brown-be2zn?file=/index.html
Kis magyarazat a readme fileban -> https://codesandbox.io/s/modest-brown-be2zn?file=/readme.md
-
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.

-
Jim-Y
veterán
Sziasztok
Kb. 2 hét alatt napi 15 oldalonként átírtam a programomat JS-re, 148 oldal 40 sor/oldal lett belőle . De csak szintaxisra fogadta el a Google Chrome böngészőm, bár első ütemben így is akartam .
Most következne a futásra való elenőrzése, de elégé aggódom, hogy a https://www.w3schools.com nem lesz elég hozzá . Majd jelentkezem, hafennakadásomlesz, ami szinte biztos, hogy lesz . Ugye azért egy kicsit drukoltok nekem ?
Szia
Sajnos ebbe a topikba 150 oldal 50 sor alatt nem szoktunk hozzaszolast elfogadni de ugye nem haragszol?
-
Jim-Y
veterán
De igen, sokkal többet kell benne kódolni, teljesen feleslegesen (pontosabban egy bizonyos projekt méret felett a megkövetlet extra komplexitás megtérülhet, csak kár, hogy kb. senki nem találkozik olyan projekt méretekkel - véleményem szerint).
Gondoltam ha próbáltad már az angular mellett a react-ot és a vuejs-t, akkor felesleges a részletekbe belemenni. Arról nem is beszélve, ha mindhármat nulláról próbálod megtanulni, melyiknek milyen a tanulási görbéje.
Pont a kezdők miatt javaslom a vuejs-t mindenkinek, utána a reactot, végül az angulart csak a mazochista kezdőknek.En pont egy olyan projekten dolgozom ami "annyira nagy" bar gondolom az is relativ, hogy mi szamit nagynak.. itt FE-en 90K BE-n 110K loc van JS+TS vegyesen (nem szamitva persze a vendor dolgokat). Es igen, angular 1.8. Es en mondom nektek, egyaltalan nem nehez az angular vagy korulmenyes hasznalni, amig nem dolgoztam persze en is martonx-hez hasonlo kommenteken szocializalodtam, de ra kellett jonnom, hogy ha
jolrendeltetes szeruen hasznalod akkor tokre nincs benne semmi nehez.Persze... a learning curve az lehet, hogy mas mint egy React vagy Vue eseteben, es egyertek azzal is, hogy egy Vue-t egyszerubb elkezdeni. Azzal nem ertek egyet, hogy indokolatlanul savazzak az angulart, hogy igy szar meg ugy szar, meg igy bonyolult meg ugy bonyolult. Fenet bonyolult.. nem bonyolultabb mint egy React csak maskepp bonyolult.
-
Jim-Y
veterán
-
Jim-Y
veterán
Ha token alapu authentikaciot hasznalok akkor tenyleg nincs jobb megoldás a "kilépés" gomb megoldására a token blacklistelésnél?
Illetve ki kell még bővíteni a köv megoldást esetleg? Nem akarok atombiztos dolgot, csak ha valaki megnezi a projektet githubon akkor ne rohogje el magat..
Szoval: user regisztracional bcryptel jelszot "szaltedheshelek", loginnál comparelek, ha helyes akkor (JWT) tokent rakok cookieba, frontenden (react) pedig a megfelelo oldalaknal csekkolom a tokent es annak megfeleloen engedem be / redirectelem a felhasznalot.
En JWT-s authentikaciot meg nem csinaltam, igy a blacklisteleshez nem tudok hozzaszolni (bar engem is erdekelne), de cookie alapu autentikacional
* kell egy session middleware (express, koa, xyz .. mindnek van ilyen middleware-e). A session-t tarolhatod adatbazisban, memoriaban, vagy memcache-ben is (pl redis)
* sikeres loginnal ctx.session-re beallitod a user-t, meg azokat az informaciokat amiket fontosnak tartasz session-ben tartani
* frontendre lekuldhetsz publikus user infokat
* logoutnal session-t nullazod a backendenAPI meg ugy mukodik, hogy a nem publikus endpointokra teszel session checket.
-
Jim-Y
veterán
Milyen gyakorisággal szokás a backend apit összeegyeztetni a frontendel?
Frontenden react-reduxom van. Tegyük fel, hogy az user töröl egy elemet a listából. Ez ugye, hogy azonnal megtörténjen kitolok egy dispatchet, ami megváltoztatja a statet a frontenden és azonnal kitorlodik az elem. Ezzel párhuzamosan kimegy egy api post is, ami ugye a valódi adatbazisban modosit adatot.
A listat megjeleniteskor api alapjan jelenitem meg (componentdidmount -> dispatch -> api call -> visszaadja az adatot -> dispatch -> bennevan az adata a stateben). Utana viszont az elobb leirtak alapjan kulon kezelodik nemileg a frontend es a backend.
Ez code smell? Nem igy szokas, vagy ez is egy jarhato ut?
Olyan problemakat tudok elkepzelni pl, hogy ugye elmegy hasznalat kozben a net, erre kikuszoboleskent minden apihivas vegen ha az nem ter vissza 200as statussal akkor azonnal jelzek az usernek. Ez igy teljes koru megoldas?
Van 2 lehetoseged.
A szokasos: a frontenden kitorolsz egy element, elinditasz egy HTTP DELETE requestet a backendre, ha megjott a valasz frissited a view-t
Optimistic: FE-n kitorlod a listabol az elemet, befrissited a view-t, de cacheled a kitorolt elemet, kozben elinditod a DEL requestet es attol fuggoen, hogy a BE-n sikerult-e vagy sem utolag frissited a view-t. Ha a backenden minden sikerult es kitorolted az elemet akkor FE-n mar nem kell csinalni semmit max clearelni a cache-t. Ha viszont a backenden nem sikerult kitorolni, akkor vissza kell allitani a cahce-bol a state-et.
-
Jim-Y
veterán
Dehát azt a részt pont te javasoltad, hogy tegyem bele vagy én értettem félre valamit és beletettem, utána elkezdett úgy működni ahogy nekem kell.

Közben találtam a dologra egy végtelenül egyszerű és purritán megoldást. Szóval feleslegesen bonyolítottam az egészet 😃
Remélem ez széles körben standard dolog és a legtöbb böngésző támogatja.Ismerem a jsfidle-t és néha használom is, de ilyen purritán kódnál, az ágyúval verébre kategóriának érzem a használatát, főleg a külön szekcióba szedést (HTML, CSS, JS).
Ugyanez amit csinaltal, csak szebben megoldva szeparalava a kodot. https://jsfiddle.net/3ky9chug/
-
Jim-Y
veterán
-
Jim-Y
veterán
legegyszerűbb így elképzelni: gyári ha kitörlöd a desserts értékadását, akkor kb azt éred el, mintha nem jött volna meg az adat szerverről, és meghívja az üres tömbre a slice metódust, ami hibát dob rögtön
Nyilván én ezt megoldottam így, hogy a subscrible alá behúztam a slice-os sort, és akkor csak azután futna le, miután megjön az adat, de ez azért nem hiszem, hogy a legjobb megoldás
-
Jim-Y
veterán
Lehet elbeszélünk egymás mellett, ngFort használtam én is, itt még nem probléma , mert akkor dobálja ki az adatokat amikor megérkezik, csak akkor van baj pl, ha valamilyen szűrőt használnék, és ebben az esetben nem közvetlen a lekért adatokat jelenítem meg, hanem egy másik változóba belerakom az eredeti adatot, és azt aggregálom, ebben az esetben, ha a subscribe-n kívülre rakom az új változó értékadását, akkor hibát fog dobni, mivel bele akarja rakni az adatot, de az még nincs itt
A fentebb linkelt resolve jónak tűnik, mert pont azt csinálja, csak ahogy látom, azt minden componensre meg kell csinálni egyénileg
Ertem, egyszerubb lenne szerintem segitenunk neked, ha csinalnal egy olyan peldat amit mi i ki tudunk probalni. Mint ahogy a resolverest is feltettek.
-
Jim-Y
veterán
Mar hogy ne menne sokra, Angular 7-ben is vannak komponensek es controllerek max a szintaxis mas. Most megnezve az angular-material oldalat, szinte 1-az-1-ben ugyanigy kell irni: https://material.angular.io/components/list/examples
-
Jim-Y
veterán
Áhh köszi, és annak mi lenne a módja, hogy csak akkor töltsön be a template, ha megjött az adat? Sima ngIf-el oldjam meg, vagy más a módi erre?
Amit még hirtelen nem találok, hogy miként kellene megoldanom ha a hirdetéseket nem táblázatban, hanem listában vagy akármiben tárolnám, és szeretném használni a paginator-t?
Inkább úgy kérdezem, hogy nekem kellene lekezelni, hogy ha lapoz a felhasználó, akkor az ngFor a következő 10-et rakja ki?Mert táblázatokra tök jó példákat találtam, ahol meg van oldva a lapozás egyszerűen, de listára nem találok hasonlót
Attol fugg. A modi az kb ez:
template:
<md-list>
<md-list-item ng-repeat="item in $ctrl.items"></md-list-item>
</md-list>controller:
class ItemController {
constructor() { this._init(); }
async _init() {
this.items = await this.whateverService.getItems();
}
}A two-way binding miatt ha this.items modosul akkor a template is frissiti az allapotat. Nem minden esetben megy igy, van olyan, hogy ng-if-et kell hasznalni mint ahogy emlitettek is, akkor `ng-if` + spinner
-
Jim-Y
veterán
Kérnék egy kis segítséget
Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban? Pl egy olyan funkciót, mint facebookon az értesítéseket hogy csinálják, hogy valós időben oldal újratöltés nélkül jelez?
A másik inkább ötletelés lenne
A freelancerhez hasonló weboldalt akarok csinálni, a gond ott kezdődik, hogy pl megrendelő feltölt egy projektet, amire a programozók vagy bárki reagálhat, tehát tesz rá egy órabér ajánlatot, ezt valahol ki kellene listázni a megrendelő részén, pl a hirdetései alatt kilistázza, hogy ki tett rá ajánlatot, persze ezt csak ő látná, ezután az X ajánlat közül kellene választania egyet, akinek odaadja a projektet, na már most ez a másik oldalt is lenne, tehát a programozó felrak egy hirdetést, hogy ő vállal akármilyen fejlesztést, és erre egy megrendelő ráugorhat, hogy neki kellene csinálni valamit, viszont ebben az esetben is lehet több " ajánlat" a hirdetése alatt, de nem feltétlen választ csak egyet, mert megcsinálhatja az összeset is
Egyrészt a későbbi értékeléseket kellene kötni valamihez pl hirdetéshez ,hogy ne lehessen össze vissza értékelni
Szóval erre keresek valami praktikus megoldást, gondolkoztam hasonló megoldáson is, mint a PH-s rendszer, de ott pár üzenetváltás után létrejön az üzlet, míg az én esetemben inkább személyes megbeszélések után kezdődhetne a projekt és fejeződhetne be
Remélem érthetően hadartam el mit is szeretnék, és megköszönöm ha tudtok 1-2 támpontot adni
"Először is egy technikai kérdésem lenne, nem használtam soha még Ajax kérést, de ha jól tévedek, akkor a lényeg, hogy a háttérben elkéri az adatot, úgy, hogy a felhasználó semmit nem vesz észre, ilyen nincs az Angularban?"
Szerintem 100% hogy hasznaltal mar max nem tudsz rola hogy azt hasznaltad. Angular-ban ennek az egyik implementacioja a https://angular.io/guide/http angularjs-ben a $http service. Ujabb bongeszok tamogatjak a `fetch` API-t.
A websocket az mas. Websockettel tudod tobbek kozott elerni, hogy a backend is aszinkron tudjon kommunikalni a frontenddel. Igazabol mas a ketto. Az AJAX szinte minden applikacionak a resze es elengedhetetelen manapsag, websocketre pedig csak ritkan van szukseg.
-
Jim-Y
veterán
Üdv!
Az alábbi kód miért nem működik? Nem értem:
function UserFv ($connect, $username, $password){
$arr = array();
$sql = mysqli_query($connect, "SELECT id, username, password FROM users where username = '".$username."' and password = '".$password."' ") or die('username or password load error');
while($res = mysqli_fetch_array($sql))
{
array_push($arr,array('id'=>$res['id'],'username'=>$res['username'], 'password'=>$res['password'] ));
}
return $arr;
}
//eddig rendben lefut.
$tomb = UserFv ($connect, $username, $password);
echo $tomb['id');Köszönöm a segítséget és a tanácsokat!
Ad1: ez php szoval ha javacriptes topikban teszed fel a kerdest akkor lehet kavarc van a fejedben, hogy hogyan is kene ezt futtatni szoval az is lehet a problema
Ad2:echo $tomb['id');Itt van egy typo a vegen. -
Jim-Y
veterán
Egyeb elemekkel siman ellensulyozni lehet a material stilusat. Mmint igen, egy material dropdown kb ugyanugy nez ki minden weboldalon de attol meg maga az oldal tud ugy kinezni - ezekkel az elemekkel - hogy az nagyban kulonbozzon minden mastol.
Szoval csak ez, ne vessen vissza abban, hogy materialt hasznalj @bandi0000.
-
Jim-Y
veterán
Hol írtam, hogy halott? Csak azt írtam, hogy már nem menő, és nem véletlenül, mert szvsz sose volt jó, csak hát a hype…
Angulart per feature semmi értelme összehasonlítani a react-tal, vue-val, mert az angular egy full framework, a react csak egy faék rendering engine (hehe, nevével ellentétben még csak nem is reagál a modell változásokara
) a vuejs meg egy rendering engine, ami legalább reagál a modellek változására.
Ezért is írtam, hogy az Angulart jóval nehezebb megtanulni, megérteni, mert van (és kötelező is benne használni) a DI-t, controllereket, service-eket, ahogy az egy böszme nagy rendszerhez illik.
És pont ezért ajánlom egy szakdolgozat erejéig sokkal inkább a Vue / React-ot, mert Angularhoz képest röhej laza a betanulásuk (hacsak nem szopatjuk meg magunkat rögtön Redux-al a React mellé, vagy VueX-el a Vue mellé), miközben egyébként ezekkel is pont ugyanúgy össze lehet nagy és komoly összetett frontendeket tenni, mint Angularral.Szerintem az Angular nem jart le, csak foleg nagy cegek hasznaljak mint de facto FE solution.
Abban egyetertek, hogy egy startup valoszinuleg nem angular-t fog valasztani a friss (egyetlen) termekhez, es azzal is egyetertek, hogy egy szakdolgozathoz nem biztos, hogy angular a legjobb valasztas.Ettol fuggetlenul nem kell leirni, tobb ceg hasznalja mint gondolnad szerintem, sot meg a legtobb 1.x-et hasznal ebben biztos vagyok.
-
Jim-Y
veterán
-
Jim-Y
veterán
-
Jim-Y
veterán
Elnézést, hogy ezt a kérdést is ide teszem fel, de máshol nem biztos, hogy választ kapnék, szóval van ez az oldal és azt akarom elérni, hogy az árak mindenhol 2 sorban jelenjen meg minden felbontásban. Most 1920-ban mindenhol jó, de ha mondjuk lejjebb veszem már csúszik minden.
Köszönöm!
Olyan szelesre kell csinalnod a
<td class="page_artlist_price_table">
<div class="page_artlist_price_net page_artlist_price_bigger">
<strong>Bruttó: <span id="price_net_brutto_L_037440">35 048</span> Ft Nettó: <span id="price_net_netto_L_037440">27 597</span> Ft</strong>
</div>
</td>div-et hogy az kis felbontasban is eleg szeles legyen ahhoz, hogy kiferjen egy sorban az ar. Ehhez lehet, hogy maganak a kartyanak is kell egy minimalis fix szelesseg es ha eleg kicsi az oldal akkor reszponzivan lehet hogy csak 1,2, x kartyat tudsz majd csak megmutatni egy sorban.
Ha valami fent nem tiszta akkor keress ra google-on, hogy responsive web design.
megj: Off-ba teszem, mert ez mar nem kapcsolodik szorosan a kerdeshez. Megneztem, hogy a kartya hogyan lett lekodolva es eszmeletlenul rosszul. Az a baj, hogy ilyen megvalositassal nehez lesz nagyobb szelesseget adnod neki, az egesz ugy rossz, ahogy van. En javaslom, hogy ha teheted, dolgozd at a kartya kodjat, hogy konyebb legyen modositani rajta mert igy baromi rossz. Maga az az elem aminek nagyobb szelesseget kene adni egy abszolutan pozicionalt (teljesen feleslegesen) 100% szelessegu elem ami a szulo szelesseget veszi fel ami nem is abban a sorban van, merthogy az ar abszolutan pozicionalva egy uj sorba lett mozgatva ahol amugy lenne tobb hely neki, de igy nem lehet adni neki tobb helyet. Agyrem

-
Jim-Y
veterán
1. ha az angol oldal tobbnyelvu es tamogatja a magyar nyelvet -> igen
2. google forditos oldalt teszed iframe-be https://www.dummies.com/education/internet-basics/how-to-translate-a-website-with-google-translate/ -> igenamugy nem
-
Jim-Y
veterán
-
Jim-Y
veterán
-
Jim-Y
veterán
köszönöm szépen mindkettőtöknek, végül Jim-Y ötlete vált be, de nagyon hálás vagyok. egyébként sehogy nem akart menni, mindig minden zöld maradt, aztán észbe kaptam, hogy user error a div párokat nem ágyaztam be div alá...
ez volt nekem
<div class="info"></div>
<div class="doboz">tartalom</div>ehelyett
<div>
<div class="info"></div>
<div class="doboz">tartalom</div>
</div>
Azert azt tegyuk hozza, hogy ha te fejleszted ezt az oldalt, akkor ezt ennel sokkal elegensabban is meg lehet oldani.
-
Jim-Y
veterán
szia
kiszedtem őket, köszi a tanácsot. : ) még csak annyi volna a kérdésem, hogy mindezekkel hogyan kellene az info div-et megcéloznom. ez a script arra nem mutat rá, ha jól láttam. az volna a célom, hogy ha a doboz tartalma változik, akkor az info színe változzon és akár mindez többször ismétlődve egyetlen oldalon.
Sokkal egyszerubb lenne ha megosztanad egy fiddle-ben, hogy hogyan epul fel a html mert igy nehez segiteni. fiddle
-
Jim-Y
veterán
Van hozzaferesed az adatbazishoz? Lehet egyszerubb lenne Excelbol egybol az adatbazisba beirni a dolgokat es kihagyni a feluletet. Marmint egy scripttel excelbol az adatokat az adatbazisba, nyilvan nem kezzel

-
Jim-Y
veterán
-
Jim-Y
veterán
Gondolom akkor nem nézted meg a linket mert oda is van írva hogy "no library (pure JS)". Az alatt mit értesz hogy ne csak egy funkció legyen hanem több? Azt hogy ne csak a hatterszint változtassa meg hanem a gombra kattintva más is történjen?
-
Jim-Y
veterán
-
Jim-Y
veterán
-
Jim-Y
veterán
Hali!
Kezdő vagyok még JS terén és azzal a kérdéssel fordulnék hozzátok, hogy hogy lehetne azt megoldani, hogy a gombra kattintva minden kattintásnál meg változzon a background színe? Köszönöm előre is!

<!DOCTYPE html>
<html>
<body>
<head>
<style>
#p {background:red; padding:10px; display:none;}
</style>
</head>
<button onclick="my()">Katt</button>
<p id=p>Valami</p>
<script>
function my()
{
document.getElementById("p").style.display = "block";
}
</script>
</body>
</html>Ez segit? https://stackoverflow.com/a/1484514
-
Jim-Y
veterán
Sziasztok!
Ezt a szignatúrát nem igazán értem, valaki esetleg el tudná nekem magyarázni?
window.ColumnWidthManager.setColumnsWidth = (function (columnWidthManager) {
return function (gridId) {
columnWidthManager.setWidths(gridId, maxWidths);
};
})(new window.ColumnWidthManager(new swh.ElementWidthProvider()));Illetve hogyan oldható meg az, hogy legyen egy újabb olyan metódus, ami a fentebbi ColumnWidthManager példányt használja?

const elementWidthProvider = new swh.ElementWidthProvider();
const columnWidthManager = new window.ColumnWidthManager(elementWidthProvider);
function getColumnsWidthSetterFn(columnWidthManager) {
return function (gridId) {
columnWidthManager.setWidths(gridId, maxWidths);
};
}
// 1
window.ColumnWidthManager.setColumnsWidth = getColumnWidthSetterFn(columnWidthManager);
// 2
window.ColumnWidthManager.setColumnsWidth = (gridId) => {
columnWidthManager.setWidths(gridId, maxWidths);
}; -
Jim-Y
veterán
Köszi, hogy próbálsz segíteni.

Ezt a Fiddle-t most hagyjuk szerintem, mert összetettebb a probléma, kivülállóként nehéz átlátni. A saját adataimat kellene megosztanom, azt meg nem akarom (port forward-olás meg egyéb dolgok, elég macerás). Végül sikerült egyébként rájönnöm, mi volt a gond.Viszont ismét felmerült egy kérdés: adott ez a függvény, amibe be van ágyazva egy másik (jquery):
var getObject = function (curr_id, prev_id) {
jQuery.ajax(url,
{
dataType: 'json',
success: function (data, textStatus, jqXHR) {
if (curr_id == prev_id){var b};
return b;
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
}Hogyan tudom megoldani, hogy ha meghívom a getObject függvényt, akkor visszadja a "b" nevű változó értékét?
Amint XHR-t hasznalsz (ajax, fetch, etc) megvaltozik a kodod viselkedese es neked is mashogyan kell gondolkodnod es a kodod is mashogy kell szervezned. A legjobban tenyleg akkor jarsz ha utananezel a neten (ezer + 1 leiras van rola) hogy hogyan kell aszinkron js kodot kezelni. Arra kell gondolnod, hogy egy AJAX hivas eredmenyere csak valamikor a jovoben szamithatsz (nyilvan mivel egy tavoli szerverrel kell kapcsolatot teremteni ami kb barmennyi ideig eltarthat). Neked ezen ido alatt, amig varsz a tavoli szerverre nem szabad felfuggesztened a programod futasat, annak tovabbra is mukdonie kell. Majd amikor a jovoben megerkezik az uzenet az eredmennyel azt fel kell dolgoznod. Ez ugye az aszinkron mukodes de talan mar ebbol is lehet sejteni hogy a szinkron gondolkodas nem jo es te a peldadban es a kerdeseddel szinkron kodban gondolkozol.
-
Jim-Y
veterán
igazából a jquery nem ad vissza semmit (azonnal) - a success:-ben kellene azt feldolgoznod - ezért hívják ajax-nak a lekérdezést ("Asynchronous JavaScript + XML")
illetve ha async: false - ot állítasz be, akkor vár (blokkol) amíg visszatér a lekérés, és vissza tudod adni így:
return jQuery.ajax...Viszont ez jQ v1.8 óta deprecated.
Nem csak, hogy deprecated, de talan a legnagyobb worst practice a javascript ekoszisztemaban. A kolleganak eloszor is a javascript asynchronous termeszetet illetoen kene olvasgatnia a neten, mert a kerdeseibol vilagosan latszik, hogy nincs tisztaban, hogy hogyan kell szervezni egy aszinkron js kodot. A problema megoldasara/kezelesere tobb modszer is van, de mindegyikkel gondja lesz amig nem erti az alap koncepciot.
-
Jim-Y
veterán
Cookie based session-okkel? Session azonosito cooki-val jut el a backendre ahol a session-t memcache-ben tarolod (pl Redis).
-
Jim-Y
veterán
Sajnos en emelkeztem ra, nem eloszo fordul meg itt, meg egy masik topikban is volt mar (nem emlekszem melyikben) de ettol fuggetlenul szerintem az jo tema hogy hogyan arusitsuk szellemi termekunk az interneten, szoval mentem a flow-val

-
Jim-Y
veterán
No és mit ajánlasz, mit tegyek?

Hat nezd, gyarjuk itt a topikban a hozzaszolasokat anelkul, hogy erdemben tudnank neked segiteni, mert nem tudjuk, hogy mit akarsz, mirol van szo, stb.
Az interneten vannak bevett szokasok fizikai termekek ugy mint szellemi termekek eladasara.
Szolgaltatast akarsz arulni?
- kell egy szerver amin a szolgaltatas (kodod) fut. Ilyenkor a kodod el van rejtve a nyilvanossag elol
- kell egy kliens amin a userek elo tudnak fizetni majd ervenyes elofizetessel tudjak hasznalni a szolgaltatastTermeket akarsz arulni?
- kell egy szerver ahol a termek van
- kell egy kliens amin a felhasznalok fizetni tudnak. Ha fizettek akkor a szerver elkuldi nekik (akarmilyen csatornan keresztul) a fajt/kodot/amit arulni akarsz. Onnantol a kod/file az ovek es azt csinalnak vele amit a mellekelt licensz enged.Neked kene megfogalmazni, hogy mit akarsz.
-
Jim-Y
veterán
Hát ez lehangoló, hogy sokszorosítás ellen nem védhetem a JS-es fájlaimat?
Mit tanácsoltok, hogy a programocskámat sokszorosítás ellen hogyan védjem: egy másik programnyelvre írassam át talán?, - akkor melyikre?
Amit a tobbiek is irtak, meg igy latatlanban megmondom, hogy ezt a programot nem javascriptre kene portolni
Max ugy ha a program jellegebol adodoan csinal valamit egy van egy API elotte. Csinalsz hozza egy kliens-t ami az API-n keresztul hivja a service-t ami egy szerver gepen fut ami meg vedve van. De akkor meg minek portolni javascriptre?! -
Jim-Y
veterán
Sziasztok !
Írtam egy 8300 db soros programocskát egy közönséges programnyelven, még nincs teljesen befejezve, ezt szeretném átkódolni JavaScript-re, amit aztán szeretnék felrakni egy olcsón fizetős weboldalra. De mielőtt még belevágom magam az átkódolásba, tudnom kellene, hogy a JavaScript-es pl. htm, html, mht fájlokat lehet-e titkosítani úgy, hogy a felhasználók a JavaScript-et semmiképen ne láthassák, de a kiírt tartalmat láthassák is és másolhassák is, a TextArea-jába beírhassanak akármit? Aztán azt is tudnom kell, hogy a JavaScript-es pl. htm, html, mht fájlokat lehet-e sokszorosítás(!) ellen védetté tenni, mert semmiképen sem szeretném azt, hogy a felhasználó sokszorosítsa, ugyanis akkor nincs értelme fizetősé tenni? Van-e olyan neki, hogy az egyik számítógépről nem viheti át a másik számítógépre?
Amit kiteszel a netre azt nem lehet levedeni. A .htm, .html nem Javascript. A javascript az .js. Titkositani nem tudod de kellokeppen meg tudod neheziteni, hogy valaki ellopja/felhasznalja a kodod ha atfuttatod egy programon a mangling-et (~minify, ~uglify) vegez. Hasznalj valami megfelelo licenszet ami ved attol hogy ellopjak a kodod. Nem tudod megelozni, hogy valaki ellopja, de ha bizonyithatoan ellpta es azt mashol felhasznalta es ez ellen a licenszed ved akkor be tudod perelni. Asszem.
-
Jim-Y
veterán
-
Jim-Y
veterán
-
Jim-Y
veterán
Sziasztok! Adott az alábbi metódus. Mire kéne fűznöm az
onerror-t, hogy meg tudjam hívni benne a deferred object-en areject()-et? Próbáltam már mindenre, de ha direkt rossz adatbázis nevet vagy tábla nevet adok meg, akkor nem fut bele azonerror-omba
dataSourceIndexedDb = function(databaseProp, tableProp){
this.getData = function(){
var open = indexedDB.open(database, 1);
var data;
var defer = $.Deferred();
open.onsuccess = function() {
// Start a new transaction
var db = open.result;
var tx = db.transaction(table, "readwrite");
var store = tx.objectStore(table);
// Query the data
var getAllData = store.getAll();
getAllData.onsuccess = function() {
data = getAllData.result;
defer.resolve(data);
};
tx.onerror = function(error){
defer.reject(error);
};
// Close the db when the transaction is done
tx.oncomplete = function() {
db.close();
};
};
return defer;
};
var database = databaseProp;
var table = tableProp;
dataSource.call(this);
};En ezt valahogy igy oldanam meg. Kicsit objektumorientaltabb.
class DataSourceIndexedDB extends EventEmitter {
get MESSAGES() {
return {
CONNECTION_ERROR: 'error',
DATABASE_OPENED: 'db-opened'
}
}
constructor(databaseName) {
this._dbName = databaseName;
this._database = null;
}
openDatabase() {
const request = indexedDB.open(this._dbName, 1);
request.onerror = this.onConnectionError.bind(this);
request.onsuccess = this.onConnectionSuccess.bind(this);
}
onConnectionError(event) {
this.emit(this.MESSAGES.CONNECTION_ERROR, {
code: event.target.errorCode
});
}
onConnectionSuccess(event) {
this._database = event.target.result;
this.emit(this.MESSAGES.DATABASE_OPENED);
}
getObjectStore(storeName, mode) {
const tx = this._database.transaction(storeName, mode);
return tx.objectStore(storeName);
}
}
const database = 'xyz';
const table = 'xyz';
const indexedDB = new DataSourceIndexedDB(database);
// might be automated in constructor
indexedDB.openDatabase();
indexedDB.on(indexedDB.MESSAGES.DATABASE_OPENED, () => {
const store = indexedDB.getObjectStore(table, 'readwrite');
const request = store.getAll();
request.onsuccess = (event) => {
const data = event.target.result;
// do smtg with data
};
request.onerror = (event) => {
// error handling
}
}); -
Jim-Y
veterán
Szerintem csak
1: az eredeti kerdesed csak annak vilagos aki epp azzal foglalkozik amivel te
2: kevesen vannak akik ezzel a temaval foglalkoznakPl nekem sem vilagos hogy mire is van szukseged. Olyan mintha egy mezei URL-bol kene valamit kinyerned, de abban nem szokott "og:image" lenni szoval megiscsak valami mas url-rol van szo. A google script nem tudom pontosan, hogy micsoda. Szoval szerintem csak nem vilagos a kerdes es ezert sem valaszol ra senki. Az is lehet hogy a kerdesed nem javascript specifikus inkabb valami XY (google script vagy fene se tudja mi) specifikus.
-
Jim-Y
veterán
Sziasztok! Adott egy saját komponens, aminek vannak publikus metodusai. jQuery objektummá kell konvertáljam, ami megy is
$drop = $(dropdown);, viszont így az alap komponens metódusai elvesznek. Hogyan csináljak belőle úgy jQuery object-et, hogy közben megmaradnak a metódusai?$.extend-el próbálkoztam, de nem jártam sikerrel
https://jsfiddle.net/bnrmss1j/1/
Ha nem ez volt a kerdes akkor meg csak siman jobban kell kerdezni ^^
-
Jim-Y
veterán
Nekem ez itt elegge egy linknek tunik
<li><a href="partnerek.html" tabindex="-1"> Partnerek</a></li> -
Jim-Y
veterán
En nem mondom, mint a tobbiek, hogy ne igy csinald. Ezt a feladatot kaptad igy csinald szepen meg, bar agyuval losz a verebre semmilyen dropdown a mai vilagban nem igy mukodik mint ahogy ezt csinalod. Ettol fuggetlenul kalapald valahogy ossze es utana kezdj el egy normalis eletszeru feladaton dolgozni.
Mondok 1-2 peldat:
1: js tanulasra -> irj egy backend-frontend alkalmazast. A backend legyen egy sima faek egyszerusegu REST szerver. express vagy koa peldaul. Ne csinaljon tobbet mint regisztraljon 1-2 endpointot es adjon vissza par adatot. A frontend legyen angular vagy react es ne csinaljon mast mint kommunikaljon a backenddel kerje el az adatot es jelenitsen meg belole egy chart-ot. Pl d3-al. Ez egy egyszeru kezdoknek is egy nap alatt veghez viheto feladat es erinti azokat a dolgokat amikkel nap mint nap fogsz talalkozni front-end fejlesztokent. AJAX, charting, FE framework stb..
2: css tanulasra -> csinalj egy olyan komponenst ami egy jobb oldali menu sort implemental. A kepernyo jobb oldalan teljes magassagban egy mondjuk 70 pixel szeles savban ikonokat tud tarolni, pont mint egy navigacios menu. A kihivas benne az, hogy ez a sav fix 70 pixel szeles legyen DE ha tobb ikont teszunk bele mint amennyi latszodna az aktualis bongeszo meretetol fuggoen akkor a lelogo ikonokat eltunteted (overflow:hidden) viszont ha raviszed az egeret a 70px szeles savra akkor baloldalon kinyilik a panel es lathatova valnak a nem latszodo ikonok.
Lehet nem ezeket fogod csinalni vegul, de szerintem ezek sokkal inkabb eletszeru feladatok mint egy dropdown implementalasa js-ben.
-
Jim-Y
veterán
Csinalni egy middleware-t ami ellenorzi. Aztan a route definicioban megadhatod, hogy milyen parameterek manadatory-k es , hogy azoknak milyen a tipusa. Ha a mandatory parameterek tipusa nem jo akkor a middleware nem engedi tovabb a requestet hanem logol, meg HTTP 403.
Pszeudokod: (majd egy masik hsz-ben mert keson kezdtem el szerkeszteni, pill)
module.exports = [
// ========== CREATE ==========
{
path: '/api-endpoint',
method: 'post',
controller: 'api-endpoint-controller',
action: 'doSomething',
params: {
id: 'number',
name: 'string',
etc...
}
}
];module.exports.queryParamsValidator = function(types) {
return function (request, next) {
for ({ key, value } in request.queryParams) {
if (types[key] && !isTypeEquals(types[key], value)) {
return this.throw(403);
}
}
next();
}
}Persze ez nem egy mukodo kod, csak egy pszeudokod, de hatha segit.
-
Jim-Y
veterán
Köszönöm szépen. Csak proposalokat láttam az issueban. Van egy-két 3rd party package ami elvileg megoldaná a problémám, de annyira vad vizekre nem akarok evezni.
TypeScripttől függetlenül véleményt szeretnék kérni:
Express query paramétereit szeretném ellenőrizni. (REST) Van egy adag ami kötelező, meg egy másik adag opcionális. A többire pedig nem vagyok kíváncsi.
Ha mindet egyesével ellenőrzöm hogy kapott-e értéket, el lett-e küldve egyáltalán, megfelelő típusú-e, megfelel-e minden paraméternek stb., majd errort dobálok ha nem, akkor egy elég undorítóan hosszú fájlom lesz.
Ezt ti hogyan szoktátok kezelni? Van több ötletem is:
-Hagyni a fenébe, viszont sok ellenőrzés ismételhető lenne máshol is.
-Classokat létrehozni típusonként, majd mindet az előző postom alapján példányosítani, így ellenőrizve lesznek
-Szintén classok, de csak statikus validáló függvénnyelCsinalni egy middleware-t ami ellenorzi. Aztan a route definicioban megadhatod, hogy milyen parameterek manadatory-k es , hogy azoknak milyen a tipusa. Ha a mandatory parameterek tipusa nem jo akkor a middleware nem engedi tovabb a requestet hanem logol, meg HTTP 403.
Pszeudokod: (majd egy masik hsz-ben mert keson kezdtem el szerkeszteni, pill)
-
Jim-Y
veterán
Sziasztok! Egy javascript kódban van egy JSON hívás. Ez egy php-t tölt be. Ennek a php-nek a kimenete kb: 200kb, és ezt a javascript kód másodpercenként hívja meg.
A probléma az, hogy a böngésző már 5 perc után olyan 1giga ramot használ, ha ez a weblap meg van nyitva. Teljesen belassul. Van erre valami megoldás? Előre is köszi.Nagy esély van rá, hogy máshogy kéne megoldani az eredeti problémát mintsem másodpercenként betölteni egy php fájlt. Mi az eredeti koncepció?
-
Jim-Y
veterán
Ha esetleg valakit érdekel, megoldottam a problémát pár napnyi keresés után
Link a megoldáshoz (github)Ja igen, még annyit azért leírnék, ha megengeditek, hogy egyáltalán miért volt ez a problémám és miért nem máshogy próbáltam megoldani. Azért kellett streamet használni, mert igazán nagy fájlokat is képesnek kell lenni feldolgozni, igazán nagy file alatt 1,2 gigabájtos csv-t értek több millió sorral. Na most egy általános fájl feltöltésnél ez nem jön elő mert ritkán kell ilyen nagy fájlt feltölteni/feldolgozni. Ott ugy működik, hogy feltöltöd backendre, ott van memóriában az egész fájl (/tmp/akarmi) aztán csinálsz vele amit akarsz. Csakhogy, ez egy backend workerben fog futni ami jó eséllyel egy heroku dyno-t jelent production-ben ahol limitált a memória és/vagy nagyon drága ha több memória kell ezért egész egyszerűen nem fér bele a fájl a memóriába ezért kell stremelve beolvasni és streamelve kiírni az adatbázisba.
Ezt azért írom le, hogy ha esetleg más is találkozik ilyen kihívással akkor ez egy lehetséges megoldása a dolognak, nem mondom hogy a legjobb, vagy, hogy jó, csak, hogy egy

-
Jim-Y
veterán
Ha esetleg valakit érdekel, megoldottam a problémát pár napnyi keresés után
Link a megoldáshoz (github) -
Jim-Y
veterán
Nem tudom igazából, hogy a js memória foglalása hogy működik de így mivel a chunk csak függvény scope-n jön létre így talán nem lesz tele. De őszintén megmondva fogalmam sincs.
var fs = require('fs');
var readableStream = fs.createReadStream('file.txt');
readableStream.on('data', function(chunk) {
handler(chunk);
});
// Optional
readableStream.on('end', function() {
console.log("finish");
});Amúgy AWS Lambda-ba lesz?

Nem nem aws lambdába lesz de köze van az AWS-hez

Amugy itt egy pontosabb leírás a problémámról ha érdekel: https://github.com/brianc/node-pg-copy-streams/issues/63
-
Jim-Y
veterán
Értem, viszont ezzel a pipe-al az a baj, hogy azért lett létrehozva, hogy úgy kezeld le a folyamat, hogy mindent ő csinál meg, szóval anélkül, hogy te menedzseled a folyamatot. Viszont ha valami ilyesmit használsz akkor minden chunk esetén te kezeled le, hogy mi történjen vele.
var fs = require('fs');
var readableStream = fs.createReadStream('file.txt');
var data = '';
var chunk;
readableStream.on('readable', function() {
while ((chunk=readableStream.read()) != null) {
data += chunk;
}
});
readableStream.on('end', function() {
console.log(data)
});Lehet, hogy ez nem pont az amit te keresel.
Itt ezzel a példával csak az a baj, hogy végül az egész fájl a memóriában van majd a végén flusholja. Ettől függetlenül köszönöm a tippet de nekem sajnos nem erre van szükségem bár épp valami hasonlóval próbálkozom magam is.
-
Jim-Y
veterán
A stream beolvasása statikus függvény vagy az is async megy? Amúgy van ez az await ami erre szolgál, de ez csak akkor működik ha eleve a teljes osztály vagy épp mi van aszinkron van megírva.
Szia,
Köszi a választ de szerintem félreértettél valamit vagy én nem foglalkoztam egyértelműen. Nekem valami ilyesmire lenne szükségem. Pseudo
this
.readFileAsStream()
.pipe(parser)
.pipe(
this.pause();
asyncFunction((err, data) => {
this.resume();
})
)
.pipe(stremToDb)Most az a bajom, hogy a fájl fejlécének kiolvasása után kéne csinálnom egy DB táblát majd belestreamelni a fájl tartalmát. A tábla létrehozása async művelet és nem tudok olyan pipe függvényt írni ami ezidőre felfüggesztené a futást :/
-
Jim-Y
veterán
Beállok én is a sorba egy kérdéssel. Hogyan lehet egy nodejs streamet megállítani majd ujraindítani ha nekem az első chunk olvasásánál egy async operationt kéne csinálnom amit a többi chunknak be kéne várnia?
-
Jim-Y
veterán
Sziasztok,
A nyers JS-tel való ismerkedés céljából szeretnék egy SPA-t csinálni és tanácsot szeretnék kérni a következő eset megoldására.
Szóval van egy linkem, amire ha a felhasználó rákattint, akkor a login div-et láthatóvá teszi. Ezt az onclick eventre teszi meg. A probléma akkor van ha nincs engedélyezve a javascript.
Erre azt gondoltam, hogy a link alapértelmezetten a /login oldalra mutat. (Így ha nincs engedélyezve a JS, akkor a szerver tud statikus HTML oldalt generálni neki) Ha az oldal betöltött, akkor a JS-ből, minden <a> elemre hozzáadok egy onclick event-et. Az event handlerben pedig megvizsgálom, hogy mire mutatott a link, és az alapján módosítom az oldal megjelenését (és végül elnyelem az eventet, hogy ne menjen kérés a szerverhez.)
Ez mennyire "best-practice"? Van jobb megoldás arra, hogy ha engedélyezve van a JS, akkor mindent helyeben oldok meg, ha nincs akkor meg a server oldalon statikus HTML oldalban az alapfunkciókat nyújtom.
Válaszokat előre is köszönöm.
Szerintem SPA-nál senki sem szokott foglalkozni azzal, hogy mi van ha nincs engedélyezve a js. Mint ahogy előttem is írták akkor megette az egészet a fene. Ha gyakorlás céljából csinálnád akkor én vmi olyasmit csinálnék hogy detektálnám hogy ki van kapcsolva a js, kitennék egy üzenetet, hogy engedélyezze a user, vagy ha nem akkor itt egy link egy másik alkalmazásra ami csökkentett funkcionalitással bír. Magyarán az SPA alkalmazásba nem tenném bele annak kezelését hogy mi van ha nincs js.
-
Jim-Y
veterán
Ez a projekt tobb sebbol is verzik, de ezek nagy resze nem kod related, tehat az egesz hatranyos helyzetbol indul nalam, foleg, hogy szigoru deadline van, es nincs is lazan merve. Mivel ng2-vel mar tobben foglalkoztunk, illetve tobb projekt is fejlesztes alatt van benne, raadasul korabban sima angularjs-t hasznaltunk, esszeru lett volna azzal tovabbmenni. Ha masnem legalabb azert, hogy tartsuk a hataridot.
Most el fog menni bo egy het, mire egyaltalan ralatasunk lesz, hogy hogyan kezdjunk hozza, hogy a vegeredmeny ne csak mukodjon, hanem jo is legyen. No mindegy, meglatjuk mire haladunk, legrosszabb esetben bovul a CV-m par uj buzzword-del.
Jovok majd meg szerintem noob kerdesekkel. Koszi!(#6497) PumpkinSeed
Koszi! Pont ezeket vettem meg, jelenleg az elso porog.
Mondjuk így, ilyen háttérrel tényleg nem célszerű a reactba beleugrani

-
Jim-Y
veterán
Hat szamomra egyelore nem sok minden szol mellette, foleg azert mert eddig kb netto 10 orat foglalkoztam React-tal azt is az elmult ket napban. Egyelore en nem latom, hogy ez racionalis dontes lenne, sokkal inkabb ahogy te is irod: szemelyes preferancia. Itt mondjuk ez is erdekes, mert aki ebben most dontott, soha egy betut nem fog beleirni a kodba.

Most nyomok Udemy-n egy React + Redux treninget, bizom benne hogy okosabb leszek, egyelore a sajat szemelyes preferenciam miatt en egyertelmuen ng2-t valasztottam volna.
Ha ez egy 0-rol induló project ahol még semmi sincs eldöntve akkor mi szól a react ellen azon kívül, hogy nem ismered? A react is van olyan jó, sőt..., mint az angular így nem értem, hogy mi a problémád vele
Mmmint, értem, hogy egy olyan ember döntött aki egy sort sem fog írni stb, de ettől függetlenül a react napjaink vezető frontend framework-e és egy projectnek csak örülnie kéne, hogy ezt használhatja. Lehetne ennél sokkal rosszabb is ha pl vanillajs-el kéne csinálni meg jQueryvel. Szerintem. Félreértés ne essék az angular2 is nagyon jónak tűnik és arra is ugyanezek igazak. -
Jim-Y
veterán
Szerintem a React-hoz is készült már annyi kiegészítő "modul", hogy ma már ha valaki azt mondja, hogy "React" akkor nem az eredeti React V-re kell gondolni, hanem inkább a React MVW-re. Ilyen szempontból az hogy NG2 vagy React az kb személyes preferencia. Nem hiszem, hogy a kolléga bakot lőtt volna, hogy ng2 helyett reactot javasolt csak simán megalapozott vélemény nélkül nem állja meg a helyét, hogy miért kéne reactot használni angular helyett. Pl egy ilyen megalapozott vélemény lehet hogy utána mobilra portolni a React Native miatt egyszerűbb lehet/lenne.
-
Jim-Y
veterán
Akkor jó, viszont szerinted érdemes-e csinálni egyet, ami megkönnyíti az API-al való munkát? Vagy nem érdemes ezzel foglalkozni, mert ezen már semmi nem egyszerűsít?
Mármint mit lenne érdemes csinálni?!
-
Jim-Y
veterán
Van egy api.domain.com aloldal, ahol RESTful API megy Go-ban. Mi a legjobb framework arra, hogy ezt front-end oldalon fogyasszam? Nem nagyon látok rá erre, de a React illetve ilyen framework-k azért nem jók nekem, mert nem erre vannak kitalálva ha jól látom. Nekem olyan framework kell, ami semmit nem csinál, csak adatot szed le az API-ból.
jQuery - AJAX
Mármint tényleg, ha nem kell semmilyen FE framework akkor jQuery és kész
Vagy csak simán fetch polyfill és akkor még a jQuery sem kell. -
Jim-Y
veterán
-
Jim-Y
veterán
Értem. Szerintem előkeresem a fehér zászlót, mert sajnos azt, amit konkrétan meg szerettem volna csinálni, azt function-ökön keresztül nem lehet megoldani sajnos. Vagy ha igen, akkor számomra csúnyán csak. Azt meg nem szeretném, hogy van egy kód, amit pár hét után előveszek és csak pislogok, hogy mivaaan!?
Php és curl azért nem megoldás, mert ahogy mondtam, ez egy Android/iOS appnak indult, nativescript-tel. Csak, ha ezt tudom, nem szenvedek el feleslegesen két napot a GUI gyártással...
A vége mégiscsak az lesz, hogy java-ban írom meg és csak androidra!

Köszi mindent Nektek, rendkívül tanulságos volt ez a lecke!

Egyetlen egy dolog ami hatraltat teged, hogy foggal korommel ragaszkodsz ahhoz, hogy "fusson le a getPage es az eredmenyt irja bele a DATA valtozoba". Amit nem latsz at, hogy lehet olyan kodot irni, ami az eredmenyt beleirja egy globalis valtozoba, de te azt nem fogod tudni, hogy mikor tortent meg, mert az a valtozoba iras majd valamikor a jovoben fog megtortenni addig a kodod fut tovabb
Szerintem ezt mar nem lehet tovabb ragozni, nem akarsz lathatoan utanaolvasni a dolgoknak, es most felre fogod dobni a nyelvet, mert nem tudsz valamit megcsinalni, sajat hibadbol, mert kb 15perc olvasassal mar vilagos lenne szamodra is, hogy mit hibazol el.
/* 1 */ function getPage(url) {
/* 3 */ http.request.get(url).then(function (response) {
/* 5 */ DATA = response;
/* 6 */ console.log(response);
})
}
/* 2 */ getPage('asd');
/* 4 */ alert(DATA); -
Jim-Y
veterán
Azt szeretném elérni, hogy ha bárhol kiadom a kódban a
getPage('http://urlcím');-et, akkor a DATA globális változóban ott legyen az adott oldal forráskódja.Pl xhr, ami régen használtam, viszont gondolom node js-nél a CORS miatt nem megy:
var DATA = '';
function getPage(url){
http = new XMLHttpRequest();
http.open("GET",url, false);
http.send();
DATA = http.responseText;
}De ezt nem tudod megcsinalni, mert az asynchronous non-blocking I/O ahogy a javascriptet illetni szoktak lenyege pont az, hogy az async operationok nem blokkoljak a vegrehajtasi szalat. Magyaran, beallithatod te az XHR-t szinkronra, hogy amikor az mondod, hogy getPage(xyz) akkor az eredmeny rogton a DATA-ban legyen, de akkor az egesz javascript/nodejs filozofialval szembe mesz es amugy is ilyet nem csinalunk. Nem veletlenul minden async... Tenyleg javaslom hogy olvasgass kcsit a temaban, mert ugy tunik, hogy nem erted kristaly tisztan hogy hogy is mukodik a javascriptben az async.
Magyarazat:
a getPage belul egy requestet hasznal ami egy http keres lesz egy szerverre, amig erre a http keresre nem erkezik valasz addig NEM SZABAD blokkolni a stacket mert a javascript egy vegrehajtasi szallal (egy stackel) rendelkezik es minden UI is ezen "fut". Ha te egy szinkron kerest csinalsz, mint amit pont most szeretnel elerni akkor egez addig amig a tavoli szerver vissza nem ter addig SEMMIT sem tudnak a felhasznalok csinalni az oldaladon. Mondanom sem kell, hogy ez az egyik legnagyobb antipattern. Helyette aszinkron kell a tavoli szerver kerest kezelni. Vagyis... elinditod a kerest, majd rogton "visszaadod a vezerlest a fo szalnak" persze javascript eseten nincs ertelme ennek a mondatnak de igy konnyebb elkepzelni. Ami tenylegesen tortenik az az hogy amikor elinditasz egy requestet akkor a webapi regisztral egy callbacket amit tcp socket valasz eredmenyevel fog meghivni. Promiszok eseten a callback egy rezolvalt promis lesz.
-
Jim-Y
veterán
Még így sem megy:
var DATA = '';
function getPage(url){
var http = require("http");
content = http.request({ url: url, method: "GET" }).then(function (response) {
str = response.content.toString();
console.log(str);
DATA = response.content.toString();
}, function (e) {
alert("Error!");
}); return DATA;
}
alert(getPage('http://www.vanenet.hu/'));Egyedül a callbackes megoldásom működik rendesen:
function getPage(callback){
var http = require("http");
content = http.request({ url: URL, method: "GET" }).then(function (response) {
str = response.content.toString();
console.log(str);
callback(str);
}, function (e) {
alert("Error!");
}); return(str);
}
var URL = 'http://www.vanenet.hu';
getPage(function(result){ alert(filmName +result);});Viszont én meg nem szeretném ezzel a function(result)...-tal meghívni a függvényt, hanem annak a helyére a linket szeretném megadni és azt szeretném, ha a DATA változóban lenne a HTML kód.
Egyébként node JS-t használok.
Már a hajam égnek áll ettől!

Szia,
Ami neked kell az, hogy utananezz az aszinkronitasnak es a promisoknak javascriptben, mert igazabol ilyen jellegu a problemad.
Javascriptben a legtobb network hivas aszinkron, vagyis a hivas eredmenye valamilyen jovobeli idopontban lesz csak meg, es mivel a nyelv kornyezete tamogatja az ilyen jellegu hivasokat aszerint is kell kezelni oket. Ennek megkonnyitesere vannak a promisok amiket te mar hasznaltal is a kododban csak valoszinuleg rosszul.
az
alert(getPage(valami))mar csak azert sem mukodhet, mert ezzel a sorral azt feltetelezed, hogy a getPage szinkron fuggveny pedig nem az!Pszeudokod:
function getPage(url) {
return http.request({ url: url, method: "GET" });
}
function yourLogic() {
const URL = 'http://www.vanenet.hu';
getPage(URL)
.then(function (response) { alert(response); })
.catch(function (err) { console.error(err); })
} -
Jim-Y
veterán
Sziasztok,
Angular2-t használ már valaki? Úgy értem "prodban" nem csak tesztelgetni, kísérletezgetni? Új projektekhez én már azt szeretném használni "sima" Angular helyett, de nem nagyon tudom eldönteni melyik UI framework-öt válasszam hozzá. A Material2 még eléggé gyerekcipőben van pedig az lenne a legjobb, az ngSemantic szintén, ami talán a legjobbnak tűnik az ngBootstrap, a UI Bootstrap Angular2 átírata Bootstrap 4-el. Jó lenne, de nekem a kinézet kicsit idejét múlt. Egyéb alternatíva? Köszi!Mi át szerettünk volna állni, de a typescript (<2.0.3) nem tudja átfordítani a yield és async/await -et amiből nekünk elég sok van így a frontenden nem tudunk átállni rá. Azt lehetne, hogy .ts --> .es6 --babel--> .es5 de ugy meg sok ideig tart az auto-compile :S Elméletileg 1-2 hónap múlva jön a TS következő verziója amiben már benne lesz majd akkor futunk még egy kört vele.
-
Jim-Y
veterán
Fu .. Hát akkor 0 programozás tudással elég nagy fába vagtatok a fejszetek ☺️
API szerver = egy olyan program ami más programokat szolgál ki tartalommal. Legtöbbször adatbázisból olvas valamit és a kiolvasott adatot visszakuldi a bongeszoben lévő másik alkalmazasnak ami előzőleg megszolitotta a szervert. A szerver sokmindent vissza tud küldeni, oldschool esetben magát a megjelenitendo HTML oldalt, de újabb megközelítésben a szerver egy REST szerver ami bejövő kérdésekre figyel és pusztán adatot küld vissza, nem pedig HTML lapot.
REST hívás = http protokollon történő post, get, patch, put, delete request kuldese a szervernek
Nodejs = szerver oldali javascript. Szerver oldali V8 motor.
Natív API = amivel a nodejs alapból rendelkezik
Koa, restify = nodejs könyvtárak amiket más emberek irtak, webszervert lehet velük megvalositani.
Reszponziv kliens = bármilyen kijelzo mérethez idomodo webes applikacio
-
Jim-Y
veterán
Böngészö képes volna szerintetek kifelé kommunikálni megfelelő kódokkal vagy scriptnyelvvel egy mikrokontroller felé? Egy ismerősöm ui. így gondolná megoldani a lakása elektronikus vezérlését, hogy a grafikus felületet egy html oldalban dizájnolnám meg neki, amit telefonról stb tudna nyomkorászni.
Elvileg a rooterek programozása ugyanígy müxik, amiből ötletileg kiindultunk...


Lehetséges,
a legtöbb mai mikrokontrollert lehet valami olyan szkriptnyelvvel programozni ahol tudsz csinálni egy API szervert majd a böngésződ közönséges http protokkollon keresztül kommunikálna vele. Biztos vagyok benne hogy vannak más, direkt mikrokontrollerekre optimalizált protokollok amiken keresztül távolról tudjátok vezérelni de még mindig a legegyszerűbb hagyományos REST hívások megvalósítása lenne. Mivel javascript topikban vagyunk álljon itt egy javascriptes példa.
Adott XY mikrokontroller amire fel tudsz tenni egy nodejs-t. Nodejs-ben nativ api-val, expressel, koa-val vagy csak simán egy restify-al csinálsz egy API szervert és erre csinálsz egy reszponziv böngésző/mobil kliens-t. A szerver egy JohnnyFive-al kommunikál a mikrokontrollerrel.
-
Jim-Y
veterán
Szia
ad1: ha windows-od van akkor Visual Studio Code, ingyenes és nagyon jó JavaScript fejlesztéshez [link]
ad1.1: ha ez nem tetszik akkor Atom editor. Ez is ingyenes. Notepad++ -al ne fáraszd magad az nem alkalmas erre
ad2: tanulni angol nyelvű szövegből érdemes, sokkal több naprakész információt találni mint magyar nyelven. Igazából a magyar nyelvű JS közösség is angolul publikál ha van valamit publikálni már csak ezért is felejtsd el hogy magyar szövegből tanulsz
ad3: az elején vagy, ez nem gond, az meg nagyon jó, hogy tetszik a nyelv, mert szuper jó, és a kereslet is van jó JS (fullstack) szakemberekre. De... a prompt() nem egy életszerű dolog, ezért nem is javaslom, hogy azzal gyakorolj, egyetlenegy oldalt nem tudok, ahol használnak prompt()-ot. Ha felhasználói bevitelre van szükség, akkor input mezőt használj.Mutatok egy példa kódot, ami megoldja a te példádat: [link]
Na, csak így ide hányni ezt a kódot tőlem nem sok értelme volt, ennél sokkal több magyarázatot akartam írni, csak közben indulnom kellett. Ha mást nem akkor annyit vegyél át belőle hogy a tanulasnal már input mezobol tudod bekerni az adatokat és nem prompt - al . ☺️ egyébként meg sok érdekes, fontos alapvető dolog lenne ebben a kis kodreszletben is amiről érdemes lenne beszélni, de a többiektől tuti megkapnam hogy kezdorol beszélünk akinek az alapokkal kéne kezdenie amivel ebben az esetben egyet is értenék. Azért ha van kérdés akkor tedd fel nyugodtan 😜
-
Jim-Y
veterán
Sziasztok!
Nemrég én is elkezdtem foglalkozni a nyelvvel, (első nyelvem.. freepascalt tanultam lazarusban egy hónapig, vagyis mondhatjuk, hogy kezdő vagyok..), és nagyon megtetszett.
Van egy magyar oktatóvideó-sorozat, illetve pár külföldi oldal, azokon nézegettem, hogyan is működik a Javascript. Alapvetően az a problémám, hogy nincs rendesen elmagyarázva, miben is érdemes programozni, ezért Notepad++ban kezdtem el. Tegnap írtam is egy programot, ami kiírta, mennyi 3*5 és 3+5

De letöröltem. Ma megpróbálkoztam valami mással, de az a baj, hogy nem igazán működik. Kizárt, hogy a kóddal van a baj, mert a
var n=prompt('valamilyen szöveg')-re be kéne kérnie n-t, de a program indításánál egy fehér oldal fogad, és semmi...
Szóval nem tudom, mit csinálhatok rosszul. A <script> és hasonlók megvannak.. Html-be van mentve a fájl, talán ez a baj?
Esetleg lehagyhattam valami pontosvesszőt? Ez a másik kérdés, notepad++ tud szintaktikai hibákat ellenőrizni? Hol?
Vagy valami letiltódhatott a böngészőkben tegnap óta? (Többen is kipróbáltam.)
Mint láthatjátok, kezdő vagyok, de.. segítség kell

Szia
ad1: ha windows-od van akkor Visual Studio Code, ingyenes és nagyon jó JavaScript fejlesztéshez [link]
ad1.1: ha ez nem tetszik akkor Atom editor. Ez is ingyenes. Notepad++ -al ne fáraszd magad az nem alkalmas erre
ad2: tanulni angol nyelvű szövegből érdemes, sokkal több naprakész információt találni mint magyar nyelven. Igazából a magyar nyelvű JS közösség is angolul publikál ha van valamit publikálni már csak ezért is felejtsd el hogy magyar szövegből tanulsz
ad3: az elején vagy, ez nem gond, az meg nagyon jó, hogy tetszik a nyelv, mert szuper jó, és a kereslet is van jó JS (fullstack) szakemberekre. De... a prompt() nem egy életszerű dolog, ezért nem is javaslom, hogy azzal gyakorolj, egyetlenegy oldalt nem tudok, ahol használnak prompt()-ot. Ha felhasználói bevitelre van szükség, akkor input mezőt használj.Mutatok egy példa kódot, ami megoldja a te példádat: [link]
-
Jim-Y
veterán
A type="module" nélkül nem kapom a fenti hibaüzenetet,
de ilyenkor nem történik semmi (és nem is várom, hogy történjen
bármi is, hiszen es6 module-ról van szó).Mielőtt segítséget kértem, megpróbáltam mindenben pontosan a link-ben
leírtak szerint eljárni, igen bejelöltem az "Enable experimental JavaScript features"-t.Köszi.
Ez egesz egzszeruen nem mukodik, gondoltam megprobalom en is, csatlakoztam a Windows Insider Preview programhoz, frissitettem a Win10-emet a legujabb developer buildre, beallitottam a flaget es osszehoztam a peldat, majd a bongeszo be se tolti az oldalt szv ez ugy bugos ahogy van...
-
Jim-Y
veterán
Nem próbáltam ki. Ami inkább nem világos, hogy az app.js-t és a math.js-t ugye megcsináltad rendesen, és nem a bemásolt kód alapján szeretnéd azt hinni, hogy ezzel készen van a feladat?
Mert ha ezt a kódot várod működni, amit bemásoltál, akkor előbb nézz egy picit jobban utána a webfejlesztésnek.
Azokkal nincs gond szerintem inkább hogy fut-e alatta webszerver ami kiszolgálja a './app.js'-t vagy ilyesmi lehet a gond. Az index.html-t csak simán megnyitva böngészővel biztosan nem fog működni a dolog, hanem vagy be kell ágyazni a scripteket a html-be vagy el kell indítani egy http szervert.
-
Jim-Y
veterán
-
Jim-Y
veterán
-
Jim-Y
veterán
Az a baj, hogy a project backend agyon van bonyolítva, szét van vágva egy csomó rétegre (javarészt feleslegesen), és minden API híváshoz hozzá kell csapni egy custom auth headert benne az érvényes tokennel, ha ez nincs, akkor jön a 401. Ezt megkerülni nem opció, ezért farfekvéses ez a gyermek. Nehéz szülés.

-
Jim-Y
veterán
De mi a baj azzal ha a szervered szolgálja ki. Nem értem, hogy mi a baj az api settingsel.
-
Jim-Y
veterán
-
Jim-Y
veterán
Angularral használom (használnám), az
apiSettings.urlitt most nem opció, mert custom autentikációs header is hozzá van csapva a requesthez. Az elképzelésem az, hogy ng-change-re lefutna az adott $resource, a keresőszóval és amikor kész (.then()), frissítené a semantic search source tömbjét a kimenttel. Nem tudom ezt hogyan lehetne szépen megcsinálni, de szerintem a vége az lesz, hogy írok rá direktívát.
Ami még csuda érdekes, hogy nem találok opciót arra, hogy a keresés a tömbben ne legyen case-sensitive...
Megnéztem és nem lehet frissíteni a source tömböt mert a search modul amikor inicializálódik akkor $.extend-del lemásolja a bemeneti paramétereket és ezáltal a referencia elveszik tehát az, hogy te pusholsz a resource tömbbe nem fogja frissíteni az eredmény tömböt. Ezt csakis úgy tudod megoldani, ha az opciókat egy REST apival szolgálod ki.
Új hozzászólás Aktív témák
-
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ékokPROHARDVER! - 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! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena 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
- Lightyear - befektetési app
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Revolut
- Kamionok, fuvarozás, logisztika topik
- Speciális kiadású AMD-s alaplapot villantott az ASUS a 20 éves ROG-jubileumra
- Apple MacBook
- AMD FX
- Samsung Galaxy Felhasználók OFF topicja
- PROHARDVER! feedback: bugok, problémák, ötletek
- Okosóra és okoskiegészítő topik
- További aktív témák...
- 24 magos AMD Threadripper alapú munkára kiváló félgép, 128GB RAM-mal
- HP ZBook Fury 15 G7 i7-10850H 32GB 512GB SSD Quadro T2000 4GB FHD HUN bill, szép állapotban eladó
- Eladó MacBook Pro 16,1 2019 CTO
- új 0 km es garanciás lenovo loq rtx 5050 8gb
- Eladó teljesen újszerű karcmentes Samsung Galaxy Watch Ultra
- BESZÁMÍTÁS! MSI Gaming GTX 1050Ti 4GB videokártya garanciával hibátlan működéssel
- Dell OptiPlex 9020 MT LGA1150 félkonfiguráció
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Mega Akció! Csere-Beszámítás! Gigabyte Aorus 17H! I7 13700H / RTX 4080 / 32GB DDR5 / 1TB SSD!
- Yurbuds Ironman fülhallgató
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



Ajandeknak szeretnem igy printed verziot keresek ^^

melyik evben elnek ezek ahol az api dokumentaciot le kell tolteni!! Meg ha egy swagger.yaml-t kene letolteni azt mondom, hogy az oke..na mindegy. Mondanom sem kell ennel a pontnal annyira nem erdekelt, hogy le is toltsem






Jovok majd meg szerintem noob kerdesekkel. Koszi!

