Hirdetés

2024. május 3., péntek

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

(#4851) martonx


martonx
veterán

link

Én kérek elnézést!

(#4852) Jim-Y válasza martonx (#4851) üzenetére


Jim-Y
veterán

Mennyi ilyet lattam mar.. ilyenkor mindig az az erzesem, hogy ha valaki nem erti a nyelvet, akkor ne hasznalja, ha pedig ugy latja, hogy az implicit coersion-ok fuck logiccal mukodnek, akkor ne hasznaljon implicit coersion-t. Ezek a posztok egy az egyben polgarpukkasztasra mennek.

(#4853) fordfairlane válasza martonx (#4851) üzenetére


fordfairlane
veterán

Ez a csávó egy rakás szerencsétlenség. A + összeadásra és string konkatenálásra is vonatkozik, a minusz meg csak kivonásra.

Aki nem akar Javascriptben programozni, az ne csinálja, menjen el péknek vagy rendőrnek.

[ Szerkesztve ]

x gon' give it to ya

(#4854) Sk8erPeter válasza fordfairlane (#4853) üzenetére


Sk8erPeter
nagyúr

Szerintem ezek pont nem annyira szórakoztató példák, de nem tudom, minek húzzátok fel magatokat ezen ennyire. :DDD Legalább ilyenkor az ember elgondolkodik picit rajta, hogy mi miért is úgy működik (és itt speciel mindegyikre van elég gyors magyarázat, de ezt ti is vágjátok :) ), vagy épp lehet, hogy kicsit agyal, hogy ez így logikátlan, de az itteni példák erre nem túl jók. Egyszer linkeltem én is egy ilyet, amiben sztem ennél viccesebb példák voltak, gondoltam 1-2 perc agykikapcsolásnak jó lesz, és akkor engem oltottál le egészen érthetetlen stílusban, mai napig nem értem, miért: [link]. Itt még mindig megnézhető a videó: [link].
Itt szerintem a [] + [] === empty string, []+{} === [object Object], {} + [] === 0, {} + {} === NaN nem annyira kapásból rávághatóak, hogy miért is vannak így... :)

Ja, viszont a twitteres példában a var x * 3; sort nem igazán értettem, mivel az nem túl meglepő módon SyntaxErrorhoz vezet, innentől kezdve az értelmetlen. Szerk.: ja, most nézem, valszeg a * helyett = jelet akart írni...

[ Szerkesztve ]

Sk8erPeter

(#4855) fordfairlane válasza Sk8erPeter (#4854) üzenetére


fordfairlane
veterán

Azon húztam fel magam, hogy kábé ötmillió ilyen vicces programozót láttam már, aki az implicit type konversion-on pojénkodott. Tipikusan valami erősen típusos nyelvet tanult meg először, és ez olyan meghatározó élmény volt az életében, hogy mást már elképzelni sem tud. Egyébként is idegesítő a sok félhülye degenerált, amelyik, mint az látszik, gépelni sem igen tud.

Crockfordtól elfogadom a Javascript kritikákat, egy ilyen porbafingó kis senkiházitól nem.

"ja, most nézem, valszeg a * helyett = jelet akart írni..."

Hát igen, kábé ez az a szint, amikor nem fogadom el, hogy őkelmének nem tetszik a Javascript.

[ Szerkesztve ]

x gon' give it to ya

(#4856) martonx válasza Jim-Y (#4852) üzenetére


martonx
veterán

Én az egészet poénnak fogtam fel. Pont az a típusos programnyelveket kedvelő programozó vagyok, aki a javascriptet, php-t is kimondottan kedveli, napi szinten használja.
Ettől függetlenül mindig jót mosolygok ezeken az extrém konverziós példákon, nem cseszem fel magam rajtuk.

Én kérek elnézést!

(#4857) Jim-Y válasza martonx (#4856) üzenetére


Jim-Y
veterán

Nem is kifejezetten neked cimeztem a valaszt, hanem ugy altalanossagban a temahoz. Legtobbszor en is olyanoktol olvastam az ilyen jellegu "cikkeket", akik egy kicsit sem konyitottak a temahoz, frissen talalkoztak a JS-el, majd szornyulkodve kezdtek azonnali posztolasba az ilyen frucsa viselkedesekrol. Onnan veszem, hogy akik ilyeneket irnak sokszor (nyilvan nem mindig) nem ertenek hozza, hogy altalaban el szoktam olvasni a hozzaszolasokat is, ahol mindig be szoktak nekik linkelni a referenciabol a coersion szabalyokat, es mindig az a valasz, hogy azt se tudtak, hogy van ilyen referencia :D Meg hogy az X nyelvben amiben ok programoznak ez mennyivel logikusabb, es hogy pfuj.. na szoval az ilyenekre ezert nem adok sokat, sot egy kicsit engem is duhit, mert aki kezdo, az azt hiszi, hogy a nyelv egesz egyszeruen szarul mukodik, pedig nem igy van, csak furcsa konverzios szabalyai vannak.

(#4858) fordfairlane válasza Jim-Y (#4857) üzenetére


fordfairlane
veterán

Mit jelent az, hogy "coersion"?

x gon' give it to ya

(#4859) Sk8erPeter válasza fordfairlane (#4858) üzenetére


Sk8erPeter
nagyúr

Valószínűleg csak következetesen rosszul írja a "coercion" szót...

Sk8erPeter

(#4860) Jim-Y válasza fordfairlane (#4858) üzenetére


Jim-Y
veterán

Hat, ha most ez csak egy beszolas akart lenni a typo miatt, akkor arra nem tudok mit valaszolni :( De tenyleg, akkor csak -.-

Ha nem, hanem egy kerdes, akkor: http://jscoercion.qfox.nl/. Implicit type coercion-nek nevezik azokat a helyzeteket ahol a nyelv szemantikaja hatarozza meg a kiertekelendo kifejezes tipusat. Ilyen tipus kikovetkeztetes tortenik amikor valaki az == operatort hasznalja a === operator helyett. Ilyenkor a nyelv szabalyainak megfeleloen az egyik argumentumot mas tipusra konvertalja amit mar ossze tud majd hasonlitani a masik argumentummal. Ezek a szabalyok eleg bonyolultak, vagy nem is bonyolultak, de nehez megjegyezni oket, ezert nem szabad az implicit type coercion-re tamaszkodni, hanem mindenhol explicit megmondani, hogy mit szeretnenk.

Pl az x == null, nem csak azt ellenorzi, hogy az x az null-e, hanem egyben azt is ellenorzi, hogy undefined-e. Megsem ajanlott ezt irni, hanem explicit kiirni, hogy

if (x === null || x === void 0)

Mashol is elojon type coercion -> http://speakingjs.com/es5/ch08.html#type_coercion

[ Szerkesztve ]

(#4861) fordfairlane válasza Jim-Y (#4860) üzenetére


fordfairlane
veterán

Hat, ha most ez csak egy beszolas akart lenni a typo miatt, akkor arra nem tudok mit valaszolni :( De tenyleg, akkor csak -.-

Nem beszólás, nem tudtam, hogy a coercion ezt jelenti.

[ Szerkesztve ]

x gon' give it to ya

(#4862) Jim-Y válasza fordfairlane (#4861) üzenetére


Jim-Y
veterán

Akkor jo, bocs :D

(#4863) Zedz


Zedz
addikt

Gulppal watcholtatok egy könyvtárat, amiben JSX fájlok találhatóak. Írtam egy olyan taskot, hogy fájl mentésekor a JSX fordítsa át plain JS-re a kódot. Olyan problémám van, hogyha a JSX fájlt úgy mentem el, hogy szintaktikai hiba van benne, akkor a Gulp leállítja a watch folyamatot, és sipákol, hogy gondok vannak. A sipákolása nem zavar, csak az, hogy ilyenkor indíthatom újra a watch-t.

Gruntban is így működik ez? :D

(#4864) adam_


adam_
senior tag

Sziasztok!

Az alábbi kóddal kapcsolatban lenne kérdésem. A kód szépen le is fut, ha a júzer kiválasztja az adott termékeket, szépen a skript összeadja az áraikat, darabszámát, extra szállításként hozzáadja az extra költségeket stb. A végén egy alert ablakban megjelenik, hogy köszönjük a rendelését, és a header jobb felső sarkába szépen ki is írja a kosár tartalmát. Viszont ha a júzer leokézza az alert ablakot, minden elveszik.

Ezt orvosolva szeretném a kiszámolt adatokat változókban tárolni, majd az alert ablak továbbléptetése után is megjeleníteni a megvásárolt termékeket, és a hozzá tartozó infókat (ár, darabszám...stb.) egy külön divben az oldalon (vagy ha már a kosár résznél az eredeti helyén a headerben megmaradna, már annak is örülnék) Erre tettem többek között próbálkozásokat a script alján, de valamiért továbbra sem megy, hogyan lehetne ezt orvosolni, mit rontok el?

Amúgy ha pl. a végéről az utolsó alertet kiveszem a scriptből, a kód egyáltalán nem fut le. :U Esetleg külön kellene szednem a különböző funkciókat? Mit tanácsoltok?

Előre is köszönöm a válaszokat,

Ádám

[ Szerkesztve ]

(#4865) wis válasza adam_ (#4864) üzenetére


wis
tag

A jsfiddle példádból kimaradt a html.

(#4866) Sk8erPeter válasza adam_ (#4864) üzenetére


Sk8erPeter
nagyúr

Semmilyen HTML-kódot nem mellékeltél hozzá, azt sem írtad le, hogy egyáltalán mikor hívódik meg a függvény, minek kellene történnie, nem értem, milyen módon szeretnéd változókban tárolni a kiszámolt értékeket (mert nem tudni, mi a cél).
De megpróbálom valahogy értelmezni: most az van, hogy egyszerűen adott mezők alapján kiszámolsz kosárba pakolandó értékeket, megjeleníted őket, de ha módosul az űrlap, nem tudod utólag kideríteni, hogy a vásárló milyen termékeket is rakott be a kosárba?

Amúgy lehetőleg angol változóneveket használj, angolul programozz, simán azért, mert ez a bevett és elfogadott szokás, a programozás (és általában az informatika) nyelve angol, akár tetszik, akár nem. :) Nem beszélve a csapatmunka lehetőségeiről, amit így korlátozol. Ha odaadod vagy megmutatod ezt a kódot olyannak, aki nem tud németül, az esélyes, hogy meg sem próbál elgondolkozni rajta, vagy pedig anyázni fog.

Sk8erPeter

(#4867) Zedz válasza adam_ (#4864) üzenetére


Zedz
addikt

Kérlek, ha megosztod velünk a kódot akkor legalább írd át angolra a neveket, mert én hiába szeretnék segíteni, ez elég vad. :D

Szerk.: látom vagytok páran. Erre valaki?

[ Szerkesztve ]

(#4868) adam_ válasza Sk8erPeter (#4866) üzenetére


adam_
senior tag

Elnézést, javítottam, mellékelve ezúton html is. Bár fiddleben egyáltalán nem megy a script úgy nézem... :U

most az van, hogy egyszerűen adott mezők alapján kiszámolsz kosárba pakolandó értékeket, megjeleníted őket, de ha módosul az űrlap, nem tudod utólag kideríteni, hogy a vásárló milyen termékeket is rakott be a kosárba?

Igen, jól gondolod. És valamiért a végén az alert ablak "leokézása" után elveszik minden, holott én a végén a bevitt értékeket (etc. megvásárolt termékek adatait (darabszám, fizetési mennyiség, áruk...) meg szeretném jeleníteni a honlapon, továbbra is a "result" divben / és paralell az eredetileg kiírt kosár résznél is.

Legközelebb ígérem angolba írom, és ha most végképp nem megy az értelmezés átírom az egészet angolra, azon ne múljon. :)

[ Szerkesztve ]

(#4869) Sk8erPeter válasza adam_ (#4868) üzenetére


Sk8erPeter
nagyúr

Tudok németül, szóval nekem nem gond, de annak, aki nem tud, idegesítő lehet. Mondjuk nekem is idegesítő még úgy is, hogy értem, mi van odaírva. :DDD Az is szokott zavarni, ha valaki magyarul kódol (lehet sznobizmusnak tekinteni, de akkor is az az elfogadott szokás, hogy angolul kódolunk).

Egyrészt jsFiddle-ön át kell kattintani "No wrap - in <head>"-re vagy "No wrap - in <body>"-ra a bal fölső panelnél. Ez azt határozza meg, hogy hova fogja beágyazni a JavaScript-kódot a <script>-tagekkel. Ha megnézed a böngésző webfejlesztő eszközeivel a generált kódot, akkor ezt pontosan tudod követni. De múltkor pontosan ugyanez volt, ami miatt nem működött nálad. :)

Másrészt nem perzisztens módon tárolod az adatokat, így érthető, hogy a lapújrafrissülések esetén minden elvész.
Tárolhatnád mondjuk sessionStorage-ben vagy localStorage-ben (hogy melyikben, az felhasználásfüggő) a kosár tartalmát, itt egy egyszerű példa:
http://stackoverflow.com/questions/2010892/storing-objects-in-html5-localstorage/2010948#2010948

Harmadrészt semmivel nem akadályoztad meg, hogy lapújrafrissülés történjen azonnal az alert után, akármi is volt az eredmény, például ha tök üresen hagyom a mezőket, kapok figyelmeztetést, de ettől még megköszönöd szépen a rendelést, aztán el is mennek az adatok szerveroldalra.
Itt ráadásul tök felesleges minden alkalommal alerttel megköszönni a rendelést, hiszen még meg sem rendeltem, csak kosárba pakoltam.

A kosárba pakolás során egy jó UI esetén nem frissül újra az egész oldal, mert tök felesleges. Az egyéni döntés kérdése, hogy a kosár tartalmát el akarod-e küldeni szerveroldalra is, vagy csak kliensoldalon tárolod. A szerveroldal mellett az szól, hogy eltárolhatod későbbre is a kosárba pakolt tartalmat, és akárhol máshol jelentkezik be, akkor megint előkotorható a korábbi kosártartalom, hogy mondjuk később folytatni tudja a vásárlást. De legtöbbször csupán kliensoldalon intézik el az egész kosárba pakolgatást, az adatok tárolását, például az előbb említett módszerekkel.
Az űrlap elküldését pedig az eseménykezelőben kell megakadályozni. Például event.preventDefault() segítségével.
A HTML-kódba bedrótozott onclick-attribútumokat és társait pedig kerülni kell, szépen szeparáltan legyen a JavaScript-kódban az eseménykezelés, a kettő legyen jól elválasztva. .addEventListener() segítségével tudsz hozzáadni egy adott elemhez eseménykezelőt. Példa (a többi hibát nem javítottam, csak ezt szemléltetem!): http://jsfiddle.net/r4s0ef87/2/

Sk8erPeter

(#4870) Zedz válasza Zedz (#4863) üzenetére


Zedz
addikt

Nem mintha sokakat érdekelne, de egyszer hátha jól jön valakinek. Megoldás. :P

(#4871) adam_ válasza Sk8erPeter (#4869) üzenetére


adam_
senior tag

Másrészt nem perzisztens módon tárolod az adatokat, így érthető, hogy a lapújrafrissülések esetén minden elvész.
Tárolhatnád mondjuk sessionStorage-ben vagy localStorage-ben (hogy melyikben, az felhasználásfüggő) a kosár tartalmát

A jelenlegi tanárommal erről beszélgettem, szó volt a local/sessionStorage lehetőségéről is. Azt mondta, hogy elsősorban ezek a módszerek az IE-nél nem alkalmazhatóak, ezért jobb módszer lehet a cookies az adatok tárolására. Próbálkoztam [link], hogy a végén kikalkulált értékeket átadom egy másik funkcióba cookiesba, közvetlen akkor amikor a user elhagyja az oldalt, így amikor majd később visszatér az oldalra, megmaradnak a kosárba pakolt dolgok, ha még nem véglegesítette a vásárlást. Egyenlőre a JSFiddlebe kikommenteltem a legvégéről a cookiesos részt, mert egyáltalán nem megy sajnos. Egyenlőre csak rögzíteni akarom az egyik funkcióba a kijött értékeket a másik funkcióba, a cookiekba, majd egy másik funkció törölni is tudja azokat (tervezek még egy harmadikat is, ami visszaolvassa majd, és ezt a három funkciónalítást mondjuk egy objektumba szeretném behelyezni majd a legvégén..) Rátudnál vezetni, hogy mit rontok el, egyáltalán ez a fajta megoldás is jó lehet/lenne? Szóval elsőkörben tanulásképp kliensoldalon szeretném megoldani az adatok eltárolását, majd ha már megy a JS jobban, akkor szeretnék szerveroldali tárolással is foglalkozni.

A kosárba pakolás során egy jó UI esetén nem frissül újra az egész oldal, mert tök felesleges.

Ezt nem teljesen értem, ezt "kódügyileg" hogyan képzeljem el? :U

HTML-kódba bedrótozott onclick-attribútumokat és társait pedig kerülni kell, szépen szeparáltan legyen a JavaScript-kódban az eseménykezelés, a kettő legyen jól elválasztva. .addEventListener() segítségével tudsz hozzáadni egy adott elemhez eseménykezelőt.

Most már a HTML kódom teljesen JS mentes, ahogy kell, viszont magát a JS kódon még egyszer átfutnál, és megmondanád, hogy te mit változtatnál rajta (elrendezés, vagy az egész felépítettsége), mert sajnos még erre nem éreztem rá igazán, hogy mikor szép/jó egy komplett szkript. Talán még jóópár projektet kell majd látnom ahhoz, hogy ezt érezzem. Mert sok kis apró dolgot külön funkciónalításokba (ha néha tákolmány is), de sikerül felépítenem, viszont így komplexbe a végén még van mit csiszolni rajta. Gondolok itt például olyanokra, hogy a változókat mikor deklarálom jól (etc. lokálisan, vagy publikusan), mindenre hozok létre külön funkciókat (bár lehetne egy komplex objektumba is ezeket belepakolni..stb..)

Még ezekhez jóó pár hónapot kell gyakorolnom gondolom, hogy átérezzem, mert minél több nüansznyi dolgot tudok, annál több mindent akarok belepakolni egy projektbe, és persze annál bonyolultabb perpill számomra. :U

Húh ez sok volt, de kíváncsi vagyok a véleményedre. :)

Ádám

[ Szerkesztve ]

(#4872) martonx válasza adam_ (#4871) üzenetére


martonx
veterán

"Azt mondta, hogy elsősorban ezek a módszerek az IE-nél nem alkalmazhatóak"

Híjnye bakker, akkor sürgősen keress új tanárt, mert a session storage / local storage az egyetlen!!! HTML5-ös feature amit már az IE8 is támogatott. Az pedig akárhogy is nézem 6 évvel ezelőtt jött ki.

Én kérek elnézést!

(#4873) Sk8erPeter válasza adam_ (#4871) üzenetére


Sk8erPeter
nagyúr

"A jelenlegi tanárommal erről beszélgettem, szó volt a local/sessionStorage lehetőségéről is. Azt mondta, hogy elsősorban ezek a módszerek az IE-nél nem alkalmazhatóak, ezért jobb módszer lehet a cookies az adatok tárolására."
Hát a tanárod akkor kissé le van maradva, vagy megmaradt az IE6/7-re fejlesztős korszakban (asszem 2015-ben ezt nyugodtan meghagyhatjuk egészen speciális (pl. vállalati) területek "kiváltságainak"), mert ahogy martonx már leírta, még az IE8 is támogatja a localStorage/sessionStorage használatát:
http://caniuse.com/#search=localStorage
http://caniuse.com/#search=sessionStorage

Szóval hogy most cookie-t, localStorage/sessionStorage-ot használsz, azt ne támogatottság alapján döntsd el (hacsak nem akarsz még őskövület böngészőkre is fejleszteni), hanem az alapján, hogy melyikre van szükséged.

Pár gondolat:
- felesleges egyesével minden gombot külön-külön beregisztrálni egy eseménykezelőhöz id szerint, értelmesebb lenne valami általánosabb struktúrába szervezni, pl. hozzájuk rendelni egy osztályt, és pl. .querySelectorAll használatával kigyűjteni őket, végigmenni a listán, és hozzájuk csapni az eseménykezelőt (az elemen kiváltódó adott eseményre feliratkozni).
- az előzőhöz kapcsolódóan próbálj általánosabban gondolkodni, nem mindenhez bedrótozni az id-t, és aszerint végezni vele valamit (nyilván esetfüggő, lehet olyan elem, hogy csak és kizárólag ahhoz akarsz valamilyen viselkedést rendelni), mert ez nehézkessé teszi a kódodat, nehezebben tudsz azonos viselkedésű elemeket lazán hozzáadni a HTML-kódhoz anélkül, hogy a JavaScript-kódot módosítanod kéne
- JavaScript-kódba nem írunk CSS-kódot! Tehát a stílust nem szabad JavaScriptből definiálni, hogy ilyen kerete legyen, olyan színe, stb., hanem erre szépen létre kell hozni egy CSS-osztályt, és magát az adott class-t az elemhez hozzáadni vagy épp levenni róla szükség szerint. Pl.:
http://stackoverflow.com/questions/2155737/remove-css-class-from-element-with-javascript-no-jquery/18492076#18492076
- most nem nagyon van időm leírni a hogyanját, de a kosárba pakolt elemeket tárolhatod egy változóban, úgy, hogy csak azok a függvények érjék el, akiknek szabad is, hogy hozzáférése legyen, tehát legyen egy kosárba hozzáadós, eltávolítós, adatfrissítős függvényed (meg ami még kellhet) - hogy hogyan rejtsd adott scope-ba, az nem feltétlenül kezdő feladat, de addig is megoldhatod sima globális változóval (de tudnod kell, hogy ez veszélyes módszer, mivel bárki hozzáférhet)
- lehetőség szerint kerüld el az ismétlődő metódushívásokat, értem ezalatt azt is, hogy a natív metódusokat hívogatod újból és újból adott kódban, mert egyrészt csak csúnya code bloat, másrészt plusz időt vesz igénybe ezek újbóli végrehajtása (még ha nem is dob észrevehetően a kód futási idején egy document.getElementById újbóli hívogatása - pl. az eseménykezelődben kétszer is szerepel a document.getElementById("zahlungsMethod"), pedig ezt elég lett volna egyszer leírnod, és eltárolni egy változóban, ez persze csak egy példa); szóval azt, amire később úgyis szükséged lesz újból, tárold el egy változóban

"»» A kosárba pakolás során egy jó UI esetén nem frissül újra az egész oldal, mert tök felesleges.
Ezt nem teljesen értem, ezt "kódügyileg" hogyan képzeljem el?"

Úgy, hogy nem megakadályozod az alapértelmezett viselkedését az űrlapnak, hogy az adatok szerveroldalra küldésével együtt újrafrissüljön az egész lap, erre írtam már korábban az event.preventDefault()-ot például (van még az event.stopPropagation() is, de most egyelőre hagyjuk).

Na most ennyire volt idő.

[ Szerkesztve ]

Sk8erPeter

(#4874) adam_


adam_
senior tag

Közben sikerül a cookiesokkal megoldani az adatok rögzítését, amely a honlap elhagyása után következik be. Erre első körben három funkciót írtam (cookies létrehozása, cookies törlése, és cookies megjelenítése), ezek működnek is, viszont az itt mellékelt kódban, a Cookies wie Object komment után a kódban megpróbáltam összehozni egy objektbe a három funkciót, de valamiért úgy nem megy, ezért egyenlőre kikommenteltem. Kérlek ránézne közületek valaki, hogy miért nem megy objektben a három funkció?

Valamint a Cookies bei Neuladen komment után a kódban kísérletet tettem arra, hogy a lementett cookiekat, ha az oldalra visszatér a felhasználó, a kosár tartalmak továbbra is megmaradjanak, viszont ezt egyenlőre csak console.loggal teszteltem, ott persze nem ad vissza eredményt... :U

Nagyon szépen köszönöm a tanácsokat előre is,

Ádám

Ui: Ha valakinek problémás lenne a német miatt, kérlek szóljatok, és részletezem az adott sort, ha valamely változó, komment ... nem lenne érthető. Viszont nekem most perpill németbe kell ezt megírnom a beadandóm miatt.

Sk8erPeter: Közben pont nézem a kommented, köszi szépen a hasznos tanácsokat. Igyekszem még átvariálni a kódot. ;)

[ Szerkesztve ]

(#4875) adam_


adam_
senior tag

Notepad++ -hoz létezik normális plugin projektek kezelésére?

Itt írnak egy bizonyos NPP-ről, de egyik link sem aktív már nálam, vagyis épkézláb megoldást még nem találtam. Ez miatt pedig nem szeretnék más editort használni, mert nagyon megszerettem már a Notepadet. :U

Van valami aktuális megoldás a témára?

Előre is köszönöm,

Ádám

(#4876) wis válasza adam_ (#4875) üzenetére


wis
tag

A bizonyos NPP az a Notepad++ :DDD
A linkelt oldalon pedig azt írják, hogy alapból tartalmazza. [kép]

(#4877) adam_ válasza wis (#4876) üzenetére


adam_
senior tag

Oké köszi, fáradt vagyok. ;]

(#4878) Sk8erPeter válasza adam_ (#4874) üzenetére


Sk8erPeter
nagyúr

"cookiesokkal"
Ez picit furán hangzik. :DDD Az egyesszám a cookie. Akkor már cookie-kkal. :D

Nem tudnád ezt a kódot úgy mellékelni, hogy a gomboknak legyen már felirata, a képek helyén meg legyen ott valami kitöltő kép? :)
Kitöltő képek:
http://lorempixel.com/
http://placehold.it/
stb.

A gombok meg legyenek ellátva valami segítő szöveggel például az accessibility miatt. Például egy keresőrobot vagy egy screenreader sem igazán tud mit kezdeni az üres értékekkel ellátott gombjaiddal.
Aztán ezeket a korábbi tanácsokat megfogadhatnád (tele van ezekkel a hibákkal a kódod, most még több ilyen jellegű hibával is, mint korábban, amire írtam ezeket), plusz ami a mostani kódodban még extraként nagyon gáz, hogy tele van okádva a kódod ilyenekkel:

<script>
$('#zoom_01').elevateZoom({
easing: true
});
</script>

......

<script>
$('#zoom_02').elevateZoom({
easing: true
});
</script>

......

(A pontok helyén folytatódik a kód.)
Ez iszonyatosan béna, pont arra találták ki az osztályokat és a selectorokat, hogy általánosan lehessen hivatkozni alapvetően azonos jellemzőkkel bíró elemekre.

Ennek a függvényednek nem sok értelmét látom:

function entfernCookie() {

document.cookie = "cookiesEuro=" + cookiesEuro;
"path=/; expires= 0";
document.cookie = "cookiesChocMenge=" + cookiesChocmenge;
"path=/; expires= 0";
document.cookie = "cookiesLieferung=" + cookiesLieferung;
"path=/; expires= 0";

alert("Sie haben alle Cookies erfolgreich gegessen! :)\nSie können es mit Cookies-Status-Button kontrollieren.")
}

Az "entfernen" tudtommal azt jelenti, hogy eltávolítani, akkor itt miért is adsz háromszor is tök különböző értéket a document.cookie-nak?

Aztán az objektumos résznél:

var cookies = {
.........
cookies : document.cookie,
.........
entfernCookie : function () {

cookies.document.cookie = "cookiesEuro=" + cookies.cookiesEuro ; "path=/; expires= 0";
cookies.document.cookie = "cookiesChocMenge=" + cookies.cookiesChocmenge ; "path=/; expires= 0";
cookies.document.cookie = "cookiesLieferung=" + cookies.cookiesLieferung ; "path=/; expires= 0";
},
...............

Ennek a cookies.document.cookie-nak semmi értelme, ne csodálkozz, hogy ez nem is működik.

"Viszont nekem most perpill németbe kell ezt megírnom a beadandóm miatt"
Lehetne a kurzus nyelve akár szuahéli is, tök mindegy, a programozás nyelve az angol. :) A kommentjeid akár lehetnek azon a nyelven, amit preferálsz (bár a nemzetközi csapatmunkát ez is nehezíti - nem kell igazán komoly projektekre sem gondolni, elég egy GitHubon megosztott open source projektecske, amit a nagyközönség elé társz), de a változóneveknek, attribútumértékeknek, id-knak, egyebeknek angol nyelven kellene szerepelniük. Csak jótanács. :)

(#4875):

"nem szeretnék más editort használni, mert nagyon megszerettem már a Notepadet"
Majd rájössz. :DDD

[ Szerkesztve ]

Sk8erPeter

(#4879) Jim-Y válasza Sk8erPeter (#4878) üzenetére


Jim-Y
veterán

+1

Nem is értem -őszintén-, hogy mi visz rá valakit, hogy ne angolul programozzon. Attól még a termék/oldal nyílván lehet német, olasz, vagy akármi. Aki így tesz annak nem tűnik fel, hogy a
function
for
switch
new
..stb
sem németül, olaszul, egyéb nyelven van? :D

(#4880) martonx válasza Jim-Y (#4879) üzenetére


martonx
veterán

Hehe, pedig én tudnék nektek mutatni komplett magyar változónevekkel megírt rendszert is. Borzalom.
De a legjobb amikor ilyen változónevek vannak, hogy balwindow, meg alsospinner.

Én kérek elnézést!

(#4881) Zedz válasza martonx (#4880) üzenetére


Zedz
addikt

Legalább betonbiztos helye van a cégnél. Ha kirúgják és módosítani kell a kódot, akkor eluralkodna a káosz. ;]

(#4882) daninet


daninet
veterán

Sziasztok!
A javascript kicsit kiszalad a tudáskörömből, szeretnék némi segítséget kérni.
Colorbox-ot használok, és szeretném ha egy ablak bezáródna 3mp után. Így néz ki az üzenet:

$message = '<div>' . sprintf(JText::_('MESSAGE'), $viewProductLink, $product->product_name, $viewCartLink, 'jQuery.colorbox.close();', $viewCheckoutLink) . '</div>';
$json['success']['message'] = $message;

Próbáltam ezt de nem csinált semmit, szerintem nem jól alkalmaztam:
window.setTimeout(function() { $.colorbox.close(); }, 3000);

Bárminemű segítséget megköszönök :R

Miért vegyem meg, ha 3x annyiért, 3x annyi idő alatt megépíthetem? ´¯`·.¸¸.·´¯`·.¸><(((º>

(#4883) Sk8erPeter válasza daninet (#4882) üzenetére


Sk8erPeter
nagyúr

Pedig műxik az: http://jsfiddle.net/eyza6aw8/
Szóval ennyi alapján nehéz lesz kitalálni, nálad miért nem működik... :)

Sk8erPeter

(#4884) daninet válasza Sk8erPeter (#4883) üzenetére


daninet
veterán

ejj mindig ezek a problémák :)
akkor túrom még kicsit a kódot :R

Miért vegyem meg, ha 3x annyiért, 3x annyi idő alatt megépíthetem? ´¯`·.¸¸.·´¯`·.¸><(((º>

(#4885) adam_ válasza Sk8erPeter (#4878) üzenetére


adam_
senior tag

Köszönöm szépen a tanácsokat! :)

Egy másik kérdés: Azt mivel lehet megoldani, ha pl. kicsinyítem a böngésző méretét, tegyük fel, hogy pl. csak tablet nézetnél aktíválódik egy JQuery. Pl. hasonlóképp mint itt a jobb felső sarokban a menü? Szintén waypointssal? :U

[ Szerkesztve ]

(#4886) martonx válasza adam_ (#4885) üzenetére


martonx
veterán

CSS media query-kkel.

Én kérek elnézést!

(#4887) daninet válasza Sk8erPeter (#4883) üzenetére


daninet
veterán

Megtaláltam hova kellene begyógyítani ez a sort, de az elégtelennél is kevesebb ismeretemmel nem tom megoldani. :B :D [link]
Egy kis segítséget megköszönnék :R

[ Szerkesztve ]

Miért vegyem meg, ha 3x annyiért, 3x annyi idő alatt megépíthetem? ´¯`·.¸¸.·´¯`·.¸><(((º>

(#4888) Sk8erPeter válasza daninet (#4887) üzenetére


Sk8erPeter
nagyúr

Van ez a rész:

jQuery.colorbox({
overlayClose: true,
opacity: 0.5,
width: '600px',
height: '150px',
href: false,
html: json['success']['message']
});

egyszerűen ezutánra dobd be ezt:

window.setTimeout(function () {
jQuery.colorbox.close(); // rövidebben: $.colorbox.close(); (de a konzisztencia kedvéért maradt ez is jQuery-vel kezdődő)
}, 3000);

Ez így működni is fog. :)
Korábbi bedobott kódot átalakítva: http://jsfiddle.net/eyza6aw8/1/

Sk8erPeter

(#4889) daninet válasza Sk8erPeter (#4888) üzenetére


daninet
veterán

nagyon köszönöm :)

Miért vegyem meg, ha 3x annyiért, 3x annyi idő alatt megépíthetem? ´¯`·.¸¸.·´¯`·.¸><(((º>

(#4890) tick


tick
aktív tag

Sziasztok,
Node-on futó API-t szeretnék létrehozni. Ezzel nem is lenne probléma, ott akadok el, hogy authentikáció után nem tudom megtartani az usert. Van valami PHP Session szerű megoldás? Nem szeretnék cookieban jelszót tárolni, még enkriptálva sem.

Olvastam szép megoldásokat, hogy a jelszó soha (authentikáció után) ne legyen elküldve, helyette egy publikus kulcs, értékként pedig valamilyen azonosító. Kliens oldalon az adatok halmazából (beleértve a jelszavat) checksumot készíteni, majd mindent (jelszó kivételével) elküldeni (post/get/etc). Szerver oldalon a fogadott adatokból és a tényleges jelszóból egy új checksum, ha a kettő egyezik, akkor mehet a response.
Ez szép, okos és praktikus, de még mindig nem tudom hogy tároljam kliens oldalon a jelszót úgy, hogy azt egy általános iskolás srác ne tudja kiszedni.

Bármi útbaigazítást köszönök előre is (akár kulcsszó, cikk, prezi)

Everything that has a beginning... has an end

(#4891) martonx válasza tick (#4890) üzenetére


martonx
veterán

Node-ot nem ismerem, de hogy van azon is Session, mint bármely webszerveren futó rendszeren az hétszentség.

Én kérek elnézést!

(#4892) Cathfaern válasza tick (#4890) üzenetére


Cathfaern
nagyúr

De miért akarsz kliens oldalon jelszót tárolni? :F
Felhasználó bejelentkezik => szerver oldalon (akár db-ben) eltárolod, hogy a X user bejelentkezett 2015.02.12 8:30-kor. Legközelebb ha X user kérést indít hozzád, akkor megnézed, hogy mikor jelentkezett be utoljára. Ha ez régebbi, mint az eltárolt idő + 30 perc, akkor újra kérsz tőle jelszót. Amit írsz az ugye arra jó, hogy ne a user id-ját tárold le, hanem generálj egy egyedi azonosítót, ami minden bejelentkezéskor megváltozik.
Vagy arra hogy már bejelentkezéskor se kelljen jelszót küldeni (sose utazzon csomagban jelszó), nem vagyok benne biztos, hogy melyik verziót írod.

martonx:
Igazából nem lepne meg, ha NodeJS-en alapból nem lenne session (fél perc googlizás ebben meg is erősített). Ugye a NodeJS alapból arra lett kitalálva, hogy egyszerűen és könnyen lehessen API-kat gyártani. Ahhoz pedig nem kell session.

[ Szerkesztve ]

(#4893) Karma válasza tick (#4890) üzenetére


Karma
félisten

Szerintem a JWT megér egy kis utánaolvasást.

“All nothings are not equal.”

(#4894) martonx válasza Cathfaern (#4892) üzenetére


martonx
veterán

"NodeJS-en alapból nem lenne session" - persze nem is alapból van benne Session, pontosabban nem magában a NodeJS-ben, de feltételeztem, hogy ha valaki komolyabban veszi a NodeJS-es irányt, akkor azon is elkezd framework-öket használni.
Azokban pedig, ahogy most gyorsan utána gugliztam valóban van Session / Authentikáció kezelés. Más kérdés persze, hogy ennek a fizikai megvalósulása mennyire egyezik meg a "klasszikus" Session + authentication cookie-s megoldással, de funkcionalitását tekintve végülis megegyeznek.

Én kérek elnézést!

(#4895) Jim-Y válasza tick (#4890) üzenetére


Jim-Y
veterán

Szia.

En ezt hallottam mar sokszor, de meg nem hasznaltam, igy nem tudom, hogy milyen :/ http://passportjs.org/

[ Szerkesztve ]

(#4896) Cathfaern


Cathfaern
nagyúr

Amúgy ha már NodeJS, eddig nem próbáltam még, de tervezek megismerkedni vele. Érdemes rögtön frameworkkel kezdeni, és ha igen milyek ajánlott? (nem a legegyszerűbb megtanulhatóság lenne a lényeg, hanem hogy olyat tanuljak meg kezdésnek, ami később is jó lesz)

(#4897) Jim-Y válasza Cathfaern (#4896) üzenetére


Jim-Y
veterán

Express, Hapi
Vagy ha csak egy REST service kene, akkor Restify
Illetve ha mar felteszel egy node-ot, akkor ne a node;js-t tedd fel, hanem az io.js-t es hasznalj benne minel tobb ES6-t ;)

(#4898) tick


tick
aktív tag

Ezer és egy éve hoztam létre utoljára authentikációt és akkor is csak PHP-ben sessiont használva. Még nem tiszta hogy milyen adatot tud küldeni a kliens (user és pass kivételével) amiből a szerver tudja hogy a: ki az user; b: be van jelentkezve; c: valóban a megfelelő személyről van szó (pl nem egy lemásolt cookie);
Utána fogok nézni a javaslatoknak. Köszönöm mindenkinek

Everything that has a beginning... has an end

(#4899) Mentiii


Mentiii
tag

Hellótok!

Szeretnék csinálni egy kilépés megerősítés popup ablakot a wordpress oldalamra, amire meg is találtam a megoldást itt: [link]

A baj az, hogy minden alkalommal megkérdezi (mindegy, hogy X-re vagy linkre kattintok :( ).

Nekem olyanra lenne szükségem, ami a linkekre kattintva nem jelezne.

Továbbá valahogyan megoldani azt, hogy csak azoknak ugorjon elő ez a megerősítő ablak, aki be van jelentkezve

Szerintetek megoldható?

[ Szerkesztve ]

(#4900) Sk8erPeter válasza Mentiii (#4899) üzenetére


Sk8erPeter
nagyúr

Persze, megoldható. Az onbeforeunload eseménykezelőjében egyből visszatérsz, ha bizonyos feltételek nem teljesülnek. A példában null-lal tértem vissza, de az implicit undefined-dal való visszatérés is jó lenne, számomra ez így egyértelműbb, és működik az összes népszerű böngészőben, IE9-től kezdve legalábbis biztosan. Ha az egész megerősítős mókát csak akkor szeretnéd aktiválni, ha be van jelentkezve a felhasználó, akkor először is megvizsgálod, hogy be van-e jelentkezve, és ha igen, csak akkor iratkozol fel eseménykezelővel az onbeforeunload eseményre - vagy magában az eseménykezelőben is vizsgálhatod a feltételt, ez egyéni döntés kérdése.
Jelen esetben a document.activeElementnek vizsgáltam a tagname attribútumát, hogy amennyiben az egy <a> tag, akkor anchorró/linkről van szó, arra kattintva váltódott ki az esemény. Emlékeim szerint ez ilyen esetben simán megfelelő lehet.

Itt a demo:
https://jsfiddle.net/9eb5p6o6/1/

Sk8erPeter

Copyright © 2000-2024 PROHARDVER Informatikai Kft.