Hirdetés

2024. június 10., hétfő

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2014-02-25 10:20:57

LOGOUT.hu

JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)

Összefoglaló kinyitása ▼

Hozzászólások

(#5601) inf3rno


inf3rno
nagyúr

Sikerült közben a source maps-et is részlegesen működésre bírni: [link] Karma-val megy, sima browserify-olt forráskóddal is megy, egyedül jasmine nem jelzi a manuális HTML reporterével. Talán ki lehetne keresni, hogy karma hogyan csinálja, passz. Ami probléma, hogy ugyanezt a test bundle futtatásos megoldást használom babel-nél nodejs tesztelésre jasmine-el. Szóval nodejs-el nincs lehetőség normális debug-ra ha babel-t is használtok.

Nem tudom, hogy van e más lehetőség arra, hogy átfordítsam a kódot egyesével fájlonként, majd jasmine-el teszteljem. Elvileg az egész teszt mappát át kellene fordítanom valami babelify szerű libbel, aztán átnyomatni jasmine-en. Ehhez valami gulp-jasmine, vagy hasonló kellene, ami képes file stream-ekkel dolgozni. Megnézem, hogy van e ilyen. Ha igen, akkor ez a része megoldódott, és egyedül csak a manuális böngészős tesztelés nem fog menni HTML jasmine reporter miatt, ami talán nem egy nagy veszteség, karmával megy, böngészőben megy, ha betöltjük a bundle-t, egyedül ez a reporter nem tölti be a source map-et.

Buliban hasznos! =]

(#5602) Sk8erPeter válasza inf3rno (#5598) üzenetére


Sk8erPeter
nagyúr

"Szvsz a TDD nem advanced dolog, hanem alapvető, ha fejleszteni akarsz"
Bocs, de most már muszáj beszólnom, annyira folyamatosan erőlködsz ezzel a TDD-BDD-HDD-SSD-DDD-XXX-ASDASD-QWEQWE-BLABLA-HABLATY-vonallal (:]), hogy kezd már picit irritáló lenni. Azért komolyan kíváncsi lennék, hogy létezik olyan munkahely, ahol a fejlesztők tényleg MINDEN kódot TDD/BDD/akármi-vezérelt elven írnak? Van erre idő? (Persze elméletben ez is létezhet, ahol irreálisan nyugis a tempó.) Csak mert általában a megrendelők várnak a termékükre, a főnökök az eredményre (joggal), majd jön a következő feladat, és így tovább. Vagy ezek csak jól hangzó elvek, amiket a hobbiprojektjeidnél alkalmazol? Mert az egyébként úgy tök jó, és szép dolog, de amúgy akkor még csomó vezérelvhez tartozó mozaikszót vagy buzzwordöt be lehetne dobálni, ami a gyakorlatban azért inkább fenntartásokkal kezelendő, mert vagy működik, vagy nem, jó, ha sikerül annak mentén csinálni, de sokszor inkább az erre való törekvés jön csak össze (és már az is valami).

Sk8erPeter

(#5603) inf3rno válasza Sk8erPeter (#5602) üzenetére


inf3rno
nagyúr

Én jelenleg hobbi projekteknél fejlesztek így, most éles projektjeim nincsenek. Régebben éles projekteknél még nem ismertem ezeket a technikákat, személyes tapasztalatom annyi, hogy volt olyan projekt, aminél utólag írtam meg a teszteket, és az SQL-ek felében volt kisebb nagyobb hiba, amik nem derültek ki azonnal, mert csak ritkán használt útvonalakról volt szó.
Tudok olyan multiról, ahol TDD + SOLID + OOP alapvető, és a backend-et így fejlesztik, nem véletlenül írtam. Nem hinném, hogy nyugis munkahely lenne, inkább csak elvárják a minőségi kódot, meg egy méret (pár ezer sor) felett széthullik a szemét, amit tesztek nélkül fejlesztesz. A GUI-t nem feltétlen éri meg e2e tesztekről indulva fejleszteni, de azért érdemes lehet bedobni párat a fontosabb feature-ök ellenőrzésére, ha nem is minden apróbb hülyeségre. A DDD egy projekt méret felett éri meg jobban, mint a monolit, én személy szerint ezzel nem értek egyet, próbálom kisebb projekteknél is alkalmazni. Arra, hogy a TDD/BDD többlet idővel járna mutathatnál valami bizonyítékot, mert pont az ellenkezője igaz. Debugra összességében több idő megy el, mint arra, hogy a teszteket előre megírd, és az alapján fejlessz. Persze ha nem veszed komolyan az egészet, vagy nem fotnos a minőség, akkor nyugodtan fejleszthetsz tesztek nélkül is.

[ Szerkesztve ]

Buliban hasznos! =]

(#5604) inf3rno


inf3rno
nagyúr

Sikerült közben megtákolnom babel-hez a node teszteket is. [link] most már van náluk is source map, azaz hogy nem tudom, hogy sourcemap, vagy mi alapján megy, de az eredeti fájlokat írja, amikben a hiba keletkezett, a cél meg ez volt.

[ Szerkesztve ]

Buliban hasznos! =]

(#5605) martonx válasza inf3rno (#5603) üzenetére


martonx
veterán

"Tudok olyan multiról, ahol TDD + SOLID + OOP alapvető" - melyik az? És valóban alapvető, vagy csak kifelé ezt kommunikálják?

Én kérek elnézést!

(#5606) inf3rno válasza martonx (#5605) üzenetére


inf3rno
nagyúr

Nem kommunikálják kifelé, egyik haverom dolgozott náluk. Megígértem neki még régebben, hogy nevet nem mondok. Egyébként meg ez elég off topic itt.

Buliban hasznos! =]

(#5607) martonx válasza inf3rno (#5606) üzenetére


martonx
veterán

értem

Én kérek elnézést!

(#5608) Jim-Y válasza inf3rno (#5604) üzenetére


Jim-Y
veterán

FYI:

export function add() {
var result = 0;
for (var i = 0; i < arguments.length; ++i)
result += arguments[i];
return result;
}

Ha mar ES6, akkor miert nem hasznalod ugy, ahogy kene, vagy ahogy lehet? :) Gondolok itt..

export default (...nums) => nums.reduce((acc, num) => acc + num, 0);

Es ugyanez a tobbinel is.

(#5609) inf3rno válasza Jim-Y (#5608) üzenetére


inf3rno
nagyúr

Életemben talán az az első sor, amit ES6-al írtam, annyi volt a cél, hogy legyen gyorsan valami ami ES6 featureöket használ, valid, és tudok hozzá tesztet írni. Sosem használtam babel-t, és nagy valószínűséggel nem is fogok. Az egész babel-es branch-et amúgy nektek szórom össze.

[ Szerkesztve ]

Buliban hasznos! =]

(#5610) Jim-Y válasza inf3rno (#5609) üzenetére


Jim-Y
veterán

Mi az, hogy nekunk?!

(#5611) inf3rno válasza Jim-Y (#5610) üzenetére


inf3rno
nagyúr

Konkrétan Zedz küzdött azzal, hogy a babel nem megy neki browserify-al.

Buliban hasznos! =]

(#5612) Jim-Y válasza inf3rno (#5611) üzenetére


Jim-Y
veterán

Fene se tudja, nekem ennyi beallitas kellett browserify-hoz, hogy menjen a babel.

"devDependencies": {
"babelify": "^5.0.3"
},
"browserify": {
"transform": ["babelify"]
}

Ja es a fene se szorakozott gulppal vagy grunttal, npm o/

[ Szerkesztve ]

(#5613) inf3rno válasza Jim-Y (#5612) üzenetére


inf3rno
nagyúr

Neki valamilyen deprecated modullal sikerült csak megoldania. Egyébként ja, nagyjából ennyi a történet, de gondoltam, akkor már megcsinálom rendesen olyan formában, amire lehet később hivatkozni, ha felmerül ugyanez a kérdés, meg belövök hozzá teszt környezetet sourcemaps, el, meg minden ilyesmivel. Így is, úgy is kelleni fog nekem a master branch saját projektekhez, a babel-es branch meg nem sokban különbözik, úgyhogy belefér az időmbe, hogy pár órát annak az összevakarására is rászánok.

[ Szerkesztve ]

Buliban hasznos! =]

(#5614) Jim-Y válasza inf3rno (#5613) üzenetére


Jim-Y
veterán

"gulp": "^3.9.0",
"gulp-jasmine": "^2.2.0",
"gulp-rename": "^1.2.2",
"gulp-replace-task": "^0.11.0",
"gulp-sourcemaps": "^1.6.0",
"gulp-task-file-loader": "^1.0.0",
"gulp-uglify": "^1.4.2",

Nekem ez a bajom a gulppal meg a grunttal is, hogy ezer meg egy dependencia es kb ennyi sorbol meg ennyi kodbol ossze lehet amugy hozni a buildelest mindenfele build tool nelkul. Vagy akar egy makefile.

(#5615) inf3rno válasza Jim-Y (#5614) üzenetére


inf3rno
nagyúr

Ja, ezt én is észrevettem, de engem nem zavar. A grunt-ot én nem szeretem, inkább a configuration by code híve vagyok, amit gulppal meg lehet csinálni. Sokkal rugalmasabb. Ha van kedved összeszórhatnál valami hasonló környezetet makefile-al, kíváncsi vagyok, hogy mi a különbség.

Buliban hasznos! =]

(#5616) Sk8erPeter válasza inf3rno (#5603) üzenetére


Sk8erPeter
nagyúr

"Arra, hogy a TDD/BDD többlet idővel járna mutathatnál valami bizonyítékot, mert pont az ellenkezője igaz."
Ha nem baj, megfordítanám a dolgot: arra mutathatnál nekem olyan általánosítható bizonyítékot, hogy minden esetben gyorsabb összeállítani egy gigarendszerben - annak összes függőségével, aktuális használati esetnek megfelelő konfigurációjával, stb. - egy valóban komplett tesztkészletet egy kisebb/nagyobb feature időre történő fejlesztéséhez, mint TDD/BDD aktuális alkalmazása nélkül azt elkészíteni. Mint minden általánosítás, a tiéd is itt sántít. Ha előre megvan hozzá minden infrastruktúra, valóban csakis mindenki úgy készített kódot, és valóban mindenki töltötte az idejét a minden esetre kiterjedő tesztesetek lefedésével, akkor előfordulhat, hogy nem akkora para, de van, amikor tényleg para.
De hidd el, ezt nem bántásból vagy kötekedésből írtam le, hanem azért, mert a gyakorlat sokszor sajnos messze kell, hogy kerüljön az elméleti bullshittől, még ha az elméleti bullshitnek nyilvánvalóan lehet bőven létjogosultsága.

"Persze ha nem veszed komolyan az egészet, vagy nem fotnos a minőség, akkor nyugodtan fejleszthetsz tesztek nélkül is."
Hümm, tehát arra, aki valaha életében merészelt leírni TDD/BDD-elvek alkalmazása nélkül kódot céges környezetben (alap, hogy az első kör nem az éles), Te most itt ünnepélyesen kijelentetted, hogy nem veszi komolyan az egészet, meg annak nem is fontos a minőség, értem. :DDD
Sajnos nem lettem meggyőzve - de még egyszer megemlíteném, cseppet sem becsülöm le a TDD/BDD előnyeit és szépségeit. (Egyébként meggyőzésként említettél EGY multit, ahol állítólag csak olyan kódot adnak ki a kezükből, ami ezen elvek mentén készül - egyrészt nem tudhatjuk ennek valódiságát, másrészt nem egy nagy merítési minta. De a gondolkodásmódod alapján biztos csakis ott lehet a szakma krémje, ahol ez percről-percre szem előtt van, máshol csak noobok és igénytelen k×csögök vannak. ;] :P)

Sk8erPeter

(#5617) inf3rno válasza Sk8erPeter (#5616) üzenetére


inf3rno
nagyúr

"Ha nem baj, megfordítanám a dolgot: arra mutathatnál nekem olyan általánosítható bizonyítékot, hogy minden esetben gyorsabb összeállítani egy gigarendszerben - annak összes függőségével, aktuális használati esetnek megfelelő konfigurációjával, stb. - egy valóban komplett tesztkészletet egy kisebb/nagyobb feature időre történő fejlesztéséhez, mint TDD/BDD aktuális alkalmazása nélkül azt elkészíteni."

Nem tudok ilyesmiről, de nem nagyon szoktam statisztikák után nyomozni. A kezdeti fejlesztési idő valamivel lassabb, a bug sűrűség viszont sokkal kisebb. Egy tanulmány szerint kb 15-35%-al több időt kell beleölni a projektbe, és valahol 40-90% közötti mértékben esett vissza a release előtti bug sűrűség, máshogy fogalmazva, kevesebb, mint fele annyi bug volt. [link] A 15-35% idő többlet a 2x annyi debug-nál tapasztalatom szerint bőven visszajön. SO-n volt ilyesmi kérdés. [link] Ha ennyire izgat a téma, akkor utánakereshetnél te is, nincs kedvem olyan dolgokra pazarolni az időmet, amiből nem tanulok semmit, max megnyerek egy vitát. A többi már tényleg nagyon off.

[ Szerkesztve ]

Buliban hasznos! =]

(#5618) Sk8erPeter válasza inf3rno (#5617) üzenetére


Sk8erPeter
nagyúr

Engem aztán pont nem izgat a téma (hogy ezt hogy hoztad ki, fogalmam sincs), pont rólad szól a topic már egy ideje. No de lezárhatjuk.

Sk8erPeter

(#5619) p00h


p00h
tag

Sziasztok, kérlek segítsetek.
Joomla weboldalt próbálom konfigurálni (jf-vihrea ingyenes reszponzív template-el), de 1 dolog kifog rajtam: IOS alatt minden linkre 2szer kell nyomni, androidon nincs ilyen gond. Állítólag a hover a baj a css-ben, és neten keresgélve nem 1 ritka probléma, mégsem tudom megoldani. Tény hogy nem vagyok webprogramozó, mégcsak informatikus sem, de eddig kis keresgéléssel mindent meg tudtam oldani, erre nem jövök rá. Több javascriptet kipróbáltam egyik sem működött, vagy ha működött bizonyos linkeknél hibát okozott.
Van erre vmilyen egyszerű megoldás?
Köszönöm!

(#5620) martonx válasza p00h (#5619) üzenetére


martonx
veterán

Jellemzően ezek a template-ek elavult szarok, amiken csak épp annyit csiszolnak, hogy az újabb CMS verziókkal éppen kompatibilisek maradjanak.

Én kérek elnézést!

(#5621) disy68 válasza p00h (#5619) üzenetére


disy68
aktív tag

A probléma valóban a :hover körül van. Akkor fordul elő ilyen, ha a :hover esemény hatására valamit megjelenítünk/eltüntetünk lehet ez egy háttér is (sima színváltoztatásnál nincs gond). Az általad használt template is sanszosan használ ilyet. Itt olvashatsz megoldásokat.

“Yeah, well, you know, that’s just, like, your opinion, man.” — The Dude

(#5622) Headless


Headless
őstag

Sziasztok nem tudom mennyire tartozik ide, persze javascript, de google grafikonnal való a kérdésem, Előre is sajnálom, sajnos kicsinyített a kód így nem a legjobb az olvashatósága, próbáltam egy kicsit rajta javítani.

A problémám az, hogy el akarok rejteni adatsorokat a jelmagyarázatra kattintva, volt is egy leírás, az alapján és a commentben lévő javíás szerint meg is csináltam működik is, bizonyos esetekben. Ugyanis ha nincs "tooltip" oszlop az egész adattáblában, akkor úgy működik ahogy kell. Azonban, ha már van egy, akkor kizárólag az első oszlopot rejti el, a többinél már hibát ír, és sajnos ezúttal már nem tudtam megfejteni, az okát, remélem ti tapasztaltabbak vagytok és tudtok segíteni. jsfiddle

[ Szerkesztve ]

LEDE - R3G/DIR860l -> https://tinyurl.hu/Ntkb/

(#5623) Jim-Y


Jim-Y
veterán

Sziasztok,

Tudnatok ajanlani jo/bevalt angularjs / angularjs2 tutorialt? egghed.io-t nezem, azt nem kell irni :)

Koszi

(#5624) DNReNTi válasza Jim-Y (#5623) üzenetére


DNReNTi
őstag

Én codeschool-on néztem meg az ingyenes tutorialokat, az szerintem nagyon jó, alapoktól megy és szájbarágós, példálózós. Bár szerintem te ezen a szinten már túl vagy. :DDD Ha mégsem akkor megéri rászánni az időt, meg lehet érteni belőle a strukturális alapokat. Az offical dokumentáció szvsz egy kalap szar.

but without you, my life is incomplete, my days are absolutely gray

(#5625) martonx válasza Jim-Y (#5623) üzenetére


martonx
veterán

Én anno, amikor hirtelen jött az ukáz, hogy angularjs-eznünk kell, pluralsight-on néztem meg pár órányi tutorial-t.

Én kérek elnézést!

(#5626) Zedz válasza Jim-Y (#5623) üzenetére


Zedz
addikt

Treehouse-on jön ki ebben a hónapban egy frissített Angular tutorial, bár lehet nem mutatna már nagyon újat. Munkahelyre kell, vagy csak szorgalom? :)

(#5627) slice14


slice14
veterán

Sziasztok

Az időjárás cucnál van egy érdekesség. Ez van js-ben megadva az jelenlegiidojaras kiíratásához.

Jelenlegiidojaras = Weather.current_observation.weather; if (Jelenlegiidojaras == undefined) {
setGlobal('%Jelenlegiidojaras',"N/A "); } if (Jelenlegiidojaras != undefined) {
Jelenlegiidojaras2 = convert( Jelenlegiidojaras, 'htmlToText');
setGlobal('%Jelenlegiidojaras',Jelenlegiidojaras2); }

Viszont a json-be ha hiányzik, az adat, akkor a változónevét írja ki.

"weather":"",

Valami ötlet?

Samsung Galaxy S21 ---- Hirdetéseim: http://bit.ly/2tWSizn

(#5628) GG888 válasza Jim-Y (#5623) üzenetére


GG888
senior tag

codeacademy.com is alapoktól építi fel :)

pcmodding.hu | PC MODDING | Minden, ami modding, verhetetlen árak.

(#5629) DNReNTi


DNReNTi
őstag

Ha már úgyis Angular a téma. Nekem egy inkább elméleti/logikai kérdésem lenne:
Pár hete kezdtünk el egy új projektet ami PHP backend (Codeigniter) és Angular frontend-en megy elszeparálva szépen ahogy a nagykönyvben. Ebben a projektben az Angular kísérleti jelleggel van benne, nem vagyok nagy ninja, de így legalább megismerkedem vele én is. Nos a kérdés pedig a tyúk vagy a tojás esete kissé. Hogy a view-kat ne gányoljam össze ezért azokban már csak Angular kifejezéseket használok PHP-t nem, tehát pl egy felhasználói profil megjelenítésekor nem a PHP objektumot jelenítem meg (az nincs is, felesleges lenne), hanem oldalbetöltéskor AJAX lekéri adott felhasználót, majd az Angular írja ki az adatokat. Az Angular modul, a view-al együtt töltődik be, így mindenképpen várni kell az AJAX válaszra, amit jelenleg úgy oldottam meg, hogy megjelenik egy kis betöltés gif, aztán ha megjött az adat, megjelenik helyette a profil. Meg lehet e oldani, szépen, nem hákolva, hogy maga a view csak akkor töltsön be, ha már megvan az AJAX response? Szerintem hülyeség már maga a kérdés is, de inkább megkérdezem mi a helyes eljárás. :DDD

but without you, my life is incomplete, my days are absolutely gray

(#5630) TheProb


TheProb
veterán

Sziasztok!

Suliban épp JS-t tanulok, de az oktatás színvonala kb -1..., ellenben a következő minta vizsgával nem nagyon tudok elindulni. Tudnátok segíteni?

Itt a feladatleírás:

Készítsen olyan HTML5 weboldalt, amin elhelyez egy 7x7 méretű táblázatot, melynek minden eleme egy-egy egész szám megadására alkalmas beviteli mező! A számoknak az [1; 7] zárt intervallumba kell esniük. A táblázat legyen egy űrlap része! Az űrlapon helyezzen el egy küldés (submit) gombot is, „Ellenőriz” felirattal!
Készítsen JavaScript nyelven olyan eseménykezelő szubrutint, ami a gombra kattintást (pontosabban űrlap „elküldést”) követően ellenőrzi, hogy minden mezőt kitöltöttek-e! Ha nem, ezt felbukkanó ablakban közli. Ha igen, akkor ellenőrzi, hogy a táblázatba bevitt értékek latin négyzetet alkotnak-e. Akkor beszélünk latin négyzetről, ha a táblázat minden sorában és minden oszlopában a 7 lehetséges érték pontosan egyszer fordul elő.

Igazából a legeleje a homály, hogy hogyan szedem ki a táblázatból az egyes értékeket, hogyan rakom bele 2d-s array-be? Aztán lehet a továbbiaknál is vakarnám a fejemet, de jelenleg az elindulást nemtom.

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5631) martonx válasza TheProb (#5630) üzenetére


martonx
veterán

Kezdetnek csinálsz egy táblázatot, minden cellájában egy input-tal. Tovább hagy ne folytassam. Pláne, hogy nem látom a jsfiddle példádat, hogy egyáltalán próbálkozol a dologgal.

Én kérek elnézést!

(#5632) PumpkinSeed válasza TheProb (#5630) üzenetére


PumpkinSeed
addikt

Adsz egy id-t 0-48-ig az űrlapmezőknek, majd ezt for-al kiolvasod, és beleteszed egy tömbbe. Ha úgy testszik akkor készítesz erre egy 2 dimenziós tömböt.

[ Szerkesztve ]

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#5633) TheProb válasza martonx (#5631) üzenetére


TheProb
veterán

Nem bizonygatni akarom, hogy mennyire foglalkozok vele, ötletet kértem, hogy hogyan nyerem ki az input mezőkből az adatokat... Amit most leírtál az már pont megvan, ezért kérdeztem a JS részét a dolognak...

(#5632) PumpkinSeed: Köszi, ez már használható infó. Guglizással csak arra jutottunk, hogy magának a táblának adok pl ID-t és azt egy az egyben getElementsByTagName("TD")-el dobom be egy array-be, de az nem volt jó.

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5634) martonx válasza TheProb (#5633) üzenetére


martonx
veterán

getElementsByTagName("input") nem lenne célszerűbb? ;] Vagy csak én nem értem, hogy mi a probléma?
Egy jsfiddle-lel légyszi kínálj már meg bennünket, ha már azt szeretnéd, hogy segítsünk.

Én kérek elnézést!

(#5635) TheProb válasza martonx (#5634) üzenetére


TheProb
veterán

[link]

TagName-el csak 1D-s array-be lehet bedobni a cuccokat, nem?

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5636) PumpkinSeed válasza TheProb (#5635) üzenetére


PumpkinSeed
addikt

Igazából teljesen mindegy mivel olvasod ki, megfelelő matematikai műveletek használatával az 1 dimenziós tömböt is fel tudod ugyan úgy dolgozni mint a 2 dimenziósat.

Amúgy ez így szerintem undorító, már megbocsáss (nem szoktam így fogalmazni). Sokkal szebb lenne, ha az inputokat is JS-el generálnád. appendChild vagy valami hasonló függvény az ami neked kell ehhez.

Ez az új JSFIDDLE nagyon jó lett, lazán lehet oktatásra is használni. :D

[ Szerkesztve ]

"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán

(#5637) TheProb válasza PumpkinSeed (#5636) üzenetére


TheProb
veterán

Most tanulnám JS-t, kb a 0-ról, szóval egyelőre ilyenek még had ne legyenek triviálisak :D
Egyelőre a feladatban leírtakat szeretném, hogy megtudnám csinálni, utána majd szépítek.

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5638) martonx válasza TheProb (#5635) üzenetére


martonx
veterán

Próbáltam Firefox-al, és Edge-el is, de sehogy nem jött be a példa.

Én kérek elnézést!

(#5639) TheProb válasza martonx (#5638) üzenetére


TheProb
veterán

Úgy néz ha collaboration-t indítok akkor az a session végén "megsemmisül"
Itt van normálisan. Ahogy látom teljes kapufa amivel próbálkozok amúgy, mert még az alert se jön fel, amit próbaként írtam, ha rányomok a gombra.

Nem tudtok olyan kódoló tutorialt, ahol html-el kombinálva kell JS-t használni? Olyanra gondolok, mint ami codeschool-on is van, de ugye az csak pure JS, csak az alapokkal. Mert nagyon úgy érzem, közöm nincs ahhoz, hogy a html elemeket manipuláljam, "lekérdezzem". :(

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5640) martonx válasza TheProb (#5639) üzenetére


martonx
veterán

Azért nem moccant meg a js-ed, mert ha onload-ot használsz a js kódod wrapperének, akkor az inline js eventnél nincs scope-on belül. Szóval megoldás lehetett volna, simán body-ba rakni a js-t, vagy header-be. Amúgy sem illik inline eventeket használni, úgyhogy átalakítottam, normális event bindingra, és meghagytam az onload-ot. Így legalább már megmoccan a js :)
Ránézésre egy rakás hibát látok benne, de így már el tudsz indulni. Ettől kezdve a feladatnak nulla köze a js-hez, szimpla programozás feladat bármilyen nyelven. Figyelj oda a kismillió hibádra, de direkt nem akarom a poénokat lelőni, vannak nagyon triviálisak is közöttük.

Ja és a friss link: [link]

[ Szerkesztve ]

Én kérek elnézést!

(#5641) Sk8erPeter válasza PumpkinSeed (#5632) üzenetére


Sk8erPeter
nagyúr

"Adsz egy id-t 0-48-ig az űrlapmezőknek, majd ezt for-al kiolvasod"
He? Ezt most tényleg leírtad? :D
Az id-k aztán pont nem segítik az elemek bizonyos jellemzők szerinti általános, közös kezelését, hiszen azok egyedi azonosítók, azt az EGY bizonyos elemet találod meg a felhasználásukkal, pont az a lényegük.
Ilyesmire az osztályok valók, vagy egyéb közös tulajdonságok felhasználásával (pl. a tag neve, attribútumok, ilyesmik) is lehet azonosítani a közös viselkedéssel felruházni kívánt elemeket.

(#5636) PumpkinSeed:
"Amúgy ez így szerintem undorító, már megbocsáss (nem szoktam így fogalmazni). Sokkal szebb lenne, ha az inputokat is JS-el generálnád. appendChild vagy valami hasonló függvény az ami neked kell ehhez."
A lényeg szempontjából teljesen mindegy, hogy hogyan készülnek el az elemek, egyáltalán nem lesz attól "undorító", hogy a HTML-kimenetben egyből ott van a táblázat összes eleme, egyrészt úgy nem JavaScript-kóddal kell minden elemet elkészíttetni (ez erőforrás-spórolást jelent), másrészt elkészítheti az elemeket a szerveroldal is, és bele is pakolhatja egyből adott esetben az input-elemek értékeit is (amiket pl. adatbázisból szed). Nem láttam az eredeti kódot, de az önmagában biztosan nem jelent problémát, és nem is csúnya, ha a HTML-kódba "égette bele" az elemeket, amiket viszont kliensoldalon kellene manipulálni/ellenőrizni.

(#5640) martonx:
"Azért nem moccant meg a js-ed, mert ha onload-ot használsz a js kódod wrapperének, akkor az inline js eventnél nincs scope-on belül."
Tetszett ez a mondat, szerintem ebből a kolléga egy büdös árva szót nem értett. :DDD ;] Nekem is kétszer kellett elolvasnom, hogy felfogjam. :DD

Amúgy a kódban az a displayDate callback csak valami elírás (a check helyett). :)

[ Szerkesztve ]

Sk8erPeter

(#5642) martonx válasza Sk8erPeter (#5641) üzenetére


martonx
veterán

Csak igyekeztem megragadni a kollégának a probléma lényegét :U
A displayDate tényleg csak elírás volt, elfelejtettem a legvégén rányomni az update-re, így végül valami régebbi verziót linkeltem be :B

Én kérek elnézést!

(#5643) TheProb válasza martonx (#5640) üzenetére


TheProb
veterán

Kicsit hegesztettem rajta, ellenben továbbra se húzza be az adatokat a mezőkből. Kezdi már felhúzni az agyamat ez a sz@r... Amúgy jó tudni, hogy olyan formában nem is lehetett volna csinálni 2d-s tömböt ahogy akartam...
Ha nincs .value a getElement után akkor "undefined", ha ott van akkor meg rinyál a chrome console-ja érte.
Valaki már igazán megmondhatná, hogy a francba kell megcsinálni ezt a szutyok feladatot, mert ezekkel nemigen vagyok előrébb, amiket leírsz. Annak aki már ismeri a nyelvet annak biztos segítenek valamit a rávezetéseid, de olyannak aki kb a 0-ról indul neki annak nemsokat... :R

kb. 2.napja csak azzal szívok, hogy a nyűves adatokat kiszedjem a megadott input mezőkből, azért ez vicc.

[ Szerkesztve ]

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5644) inf3rno válasza TheProb (#5643) üzenetére


inf3rno
nagyúr

ip-t írtál id helyett, azért nem működik.

[ Szerkesztve ]

Buliban hasznos! =]

(#5645) TheProb válasza inf3rno (#5644) üzenetére


TheProb
veterán

Bakker..., tényleg, köszi. Sztem az életbe nem jöttem volna rá, hogy azt írtam el...

Meg is csináltam, elvileg jól működik. Legalábbis nekem úgy tűnik 1-2 teszt után.

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5646) martonx válasza inf3rno (#5644) üzenetére


martonx
veterán

Igen ez volt az egyik hiba, de annyira látványos volt, hogy gondoltam elsők között fogja észrevenni :D ;]

Én kérek elnézést!

(#5647) TheProb válasza martonx (#5646) üzenetére


TheProb
veterán

10/8 alkalommal pont ezeket nem szúrom ki... :W
van, hogy 30percig bámulom a kódot, már anyázok és nem jövök rá, hogy 1-1 karaktert elírtam. Szomorú :D

"Boba is Mickey, Mickey is Boba" - Finkle Einhorn | PC Rig: https://pcpartpicker.com/b/bBy48d

(#5648) inf3rno válasza TheProb (#5645) üzenetére


inf3rno
nagyúr

Ha megnézted volna, a konzolt, akkor látszott volna benne, hogy a getElementById null-t ad vissza, ami meg csak azért lehet, mert rossz id-t adtál meg.

Ha most tényleg jól megy, akkor ez lehet az 1.0. Ha van kedved tovább fejleszteni, akkor javaslom, hogy ahelyett, hogy az input-okat járod be az ellenőrzésnél, csinálj 2d tömböt a tartalmukból, és azt járd be. Ez elsőre plusz munkának tűnik, de így közvetlenül a "model"-en tudsz dolgozni, és cserélni tudod, hogy honnan és hogyan olvasod be azt. Következő lépésnek be lehetne tenni egy olyan, hogy az input.onchange eseménynél olvasod be minden cellából az értéket, a 2d tömbödbe, ahelyett, hogy gombnyomásra tennéd ezt. Így a gomb teljesen feleslegessé válna, helyette minden változásnál futtathatnád az ellenőrzést automatikusan. Ez mondjuk lehetne a 2.0. Következő lépésnek betehetnél két táblázatot ugyanahhoz a model-hez, és az lenne a feladat, hogy szinkronban tartsd őket. Szóval ha az egyikben változik egy cella tartalma, akkor a másikban is változnia kéne, ez már egy komolyabb data binding, lehetne 3.0. Utána csinálhatnál olyat, hogy külön ablakban van a két táblázat, és úgy tartod szinkronban a cellák értékeit, ez lehetne 4.0. Nagyjából ennyi amit ki lehet hozni a témából. Gondolom egy kis fantáziával még képeket is lehetne generálni a számok alapján, stb.

[ Szerkesztve ]

Buliban hasznos! =]

(#5649) tzimash


tzimash
őstag

üdv!
Adott egy feladat, amelyben generálni kell 12 véletlen számot majd megkeresni közülük a 3-mal oszthatókat, végül kiíratni. Működik is, csak a képen látható dolog zavar, a vesszők ott maradnak... ki lehetne azokat szedni onnan valahogy?

A kód (ne kössetek bele, első ilyen js feladatom, és örülök, hogy működik :) :)

<script>
function genrand()
{
var tomb=new Array(12);
var eredmeny=new Array(12);
var i, j;
for(i=0;i<12;i++)
{
tomb[i]=Math.ceil(Math.random()*11)
}
for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}
j=0;
for(i=0;i<12;i++)
if(tomb[i]%3==0)
{
eredmeny[j]=tomb[i];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}
</script>

[ Szerkesztve ]

(#5650) dqdb válasza tzimash (#5649) üzenetére


dqdb
nagyúr

var eredmeny=[];

Előre azt mondtad, hogy az eredmény 12 elemű tömb lesz, de nem írtál bele annyi elemet, így a maradék undefined értéket vett fel. A new Array() helyett inkább a sokkal tömörebb [] szintaktikát használd.

for(i=0;i<12;i++)
{
document.getElementById("tomb").innerHTML = tomb;
}

Itt a for ciklusnak semmi értelme sincsen.

Szűrésre és egyéb tömbbel kapcsolatos műveletekre érdemes használni a JS filter/reduce/map feature-jeit, ha lehetőséged van rá, mert sokkal tömörebb és átláthatóbb kódot eredményez:

var eredmeny = tomb.filter(function(e) {
return e % 3 === 0;
});

Csak akkor használd a == és != operátorokat, ha szükséges a konverzió, minden egyéb esetben a === és !== operátorokat használd.

Legyél konzekvens a központozásban, tedd ki mindig a space-eket az operátorok elé és mögé, valamint a sorok elejére a megfelelő behúzást.

for(n=0;n<12;n++)
if(tomb[n]%3==0)
{
eredmeny[j]=tomb[n];
j++;
}
document.getElementById("three").innerHTML = eredmeny;
}

És kerüld az ilyen eseteket, mert első ránézésre azt hinné az ember, hogy az innerHTML módosítása is a for cikluson belül történik, ezért tedd ki a kapcsos zárójeleket:

for (n=0; n < 12; n++)
{
if (tomb[n] % 3 === 0)
{
eredmeny[j] = tomb[n];
j++;
}
}

document.getElementById("three").innerHTML = eredmeny;

Vagy a JavaScript szokások szerint írva:

for (n=0; n < 12; n++) {
if (tomb[n] % 3 === 0) {
eredmeny[j] = tomb[n];
j++;
}
}

document.getElementById("three").innerHTML = eredmeny;

[ Szerkesztve ]

tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

Copyright © 2000-2024 PROHARDVER Informatikai Kft.