JavaScript != Java (A JavaScript nem összekeverendő a Javával, két különböző programozási nyelvről van szó!)
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [D1Rect:] Nagy "hülyétkapokazapróktól" topik
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [sziku69:] Szólánc.
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [Kolondrum:] Éves rezsi
- [Re:] [plevips:] Építkezünk 3. rész (2024)
- [Re:] [Tüzi:] Geek-hatarozo
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
GAMEPOD.hu témák
Téma összefoglaló
Hozzászólások
Sleed
aktív tag
Erre a láncfűzésre tudsz írni egy egyszerű példát?
Amit linkeltél abban annyi minden van, hogy nem tudom belőle kihámozni
Karma
félisten
Nem véletlenül írtam privátot, hogy kifejtem bővebben
No de (hahaha), akkor következzen egy egyszerű példa a te feladatodra. Egy plusz modul kell hozzá, a when. Ott kezdődik a dolog, hogy a requestből készíteni kell egy olyan változatot, ami callback függvény helyett egy ígérettel tér vissza.
(Az ígéret egy olyan objektum, ami majd valamikor a jövőben fog kiértékelődni, vagy sikeresen, vagy nem. Mindkét ágra fel lehet iratkozni külön, és ha láncba fűzi őket az ember, akkor úgy viselkedik, mint a rendes függvényhívások - az eredmények lépésről lépésre átpasszolódnak, a hiba meg az egészet megszakítja.)
Szóval a request függvényt be kell foglalni (ezt csinálja a requestP függvény), utána mehet a lényeg. Bátorkodtam kicsit egyszerűsíteni a kigyűjtésen, ha már van a cheerionak is map függvénye.
var when = require('when'),
cheerio = require('cheerio'),
request = require('request');
function requestP(url) {
return when.promise(function (resolve, reject) {
request(url, function (err, res, body) {
if (err) {
return reject(err);
} else if (res.statusCode !== 200) {
err = new Error("Unexpected status code: " + res.statusCode);
err.res = res;
return reject(err);
}
resolve(body);
});
});
}
requestP('https://news.ycombinator.com')
.then(function (html) {
var $ = cheerio.load(html);
return $('span.comhead').map(function (i, element) {
return $(element).prev();
});
})
.then(function (articles) {
console.log(articles);
})
.catch(console.error);
“All nothings are not equal.”
Karma
félisten
Szoktam még egyébként betenni plusz egy modult mindenhova, az underscore-t, amivel a tömb és objektumműveletek igencsak leegyszerűsíthetőek. A példádban például kezelhetőbbé teheti az eredményeket, ha a cheerio map, vagy az eredeti megoldásod helyett csak a számodra hasznos információt gyűjtöd ki a listába.
Ennyi változtatással:
var _ = require('underscore');
...
requestP('https://news.ycombinator.com')
.then(function (html) {
var $ = cheerio.load(html);
return _.map($('span.comhead'), function (element) {
var link = $(element).prev();
return { title: link.text(), url: link.attr('href') };
});
})
.then(function (articles) {
console.log(articles);
})
.catch(console.error);
A kimenet sokkal barátságosabb:
[ { title: 'Greed and the Wright Brothers',
url: 'http://www.nytimes.com/2014/04/19/opinion/nocera-greed-and-the-wright-brothers.html' },
{ title: 'Reactive UIs with React and Bacon',
url: 'http://joshbassett.info/2014/reactive-uis-with-react-and-bacon/' },
{ title: 'HMRC \'plans to share tax data with private firms\'',
url: 'http://www.bbc.co.uk/news/uk-27086401' }, ...]
[ Szerkesztve ]
“All nothings are not equal.”
Zedz
addikt
Sziasztok,
Hallottam arról, hogy lehetőség van asztali alkalmazást fejleszteni HTML, CSS illetve Javascript segítségével. Ebben van aki kicsit is tapasztaltabb itt? Eddig csak SDK-kat nézegettem, de igazából nem találtam értelmes leírást a témával kapcsolatban.
trisztan94
őstag
Nagyon nem érdemes. Maximum, ha Win 8/RT-re akarsz, ott viszonylag jó.
Vagyis hát igazából attól függ. Ha nem natív nyelven fejlesztesz egy OS-re, akkor az lassabb lesz mindenképp (tehát windows esetén C++, C#, OSX esetén Objective C), mert van egy wrapper körülötte ami végül lefordítja arra (asszem, javítsatok ki, ha tévedek). Akkor lehet jó választás, ha Cross Platform appokat akarsz fejleszteni (lásd: adobe brackets), amit könnyű pluginezni.
De a brackets pl. pont a fent említett dolgok miatt nagyon be tud lassulni.
[ Szerkesztve ]
https://heureka-kreativ.hu
Sk8erPeter
nagyúr
"(Az ígéret egy olyan objektum, ami majd valamikor a jövőben fog kiértékelődni, vagy sikeresen, vagy nem. Mindkét ágra fel lehet iratkozni külön, és ha láncba fűzi őket az ember, akkor úgy viselkedik, mint a rendes függvényhívások - az eredmények lépésről lépésre átpasszolódnak, a hiba meg az egészet megszakítja.)"
JavaScript Promise-témában ECMAScript 6-os feature-ök kapcsán ezt a cikket olvasgattam múltkor, és igen jó:
JavaScript Promises - There and back again
http://www.html5rocks.com/en/tutorials/es6/promises/
Sk8erPeter
Sk8erPeter
nagyúr
"Hallottam arról, hogy lehetőség van asztali alkalmazást fejleszteni HTML, CSS illetve Javascript segítségével"
Mi a célod? Ilyenkor azonnal felmerül a kérdés, hogy vajon biztos a jó nyelvekhez+eszközökhöz akarsz-e nyúlni.
Sk8erPeter
Zedz
addikt
Fősulin van egy beadandó feladatom, és első körben egy weboldalt akartam írni erre a célra. Viszont találkoztam a Brackets kódszerkesztővel és kiderült, hogy ez is a webes nyelveket használva lett létrehozva. Szóval mint érdekesség lehet csinálnék valamit beadandónak, csak nem tudom például melyik SDK-t lenne érdemes használni. Olvasgatok épp most is a dolgok után, de egy kis iránymutatás jól jönne.
[ Szerkesztve ]
Karma
félisten
Nem csak a Brackets, hanem például a TileMill térképszerkesztő is tisztán Node.js alkalmazás. Ez utóbbi is open source, meg lehet nézni hogy mire épít.
Én egyébként a DeskShellről és a node-webkitről hallottam eddig.
(#4106) Sk8erPeter: Tényleg nagyon jó cikk, köszi
Egyébként az ECMAScript 6 terjedéséről mit lehet tudni? Azt olvastam, hogy a Node a 0.11.x-es ágon már támogatja, de stabilizálódni még nem akar... Pedig a generátorok nagyon odavernek.
Szívesen használnám már gyakorlatban például a co-t.
[ Szerkesztve ]
“All nothings are not equal.”
Zedz
addikt
Köszönöm, ezeknek most utána olvasgatok.
Sk8erPeter
nagyúr
"Egyébként az ECMAScript 6 terjedéséről mit lehet tudni? Azt olvastam, hogy a Node a 0.11.x-es ágon már támogatja, de stabilizálódni még nem akar... Pedig a generátorok nagyon odavernek."
Ez jó kérdés, én is csak ezt a táblázatot nézegettem:
http://kangax.github.io/es5-compat-table/es6/
pl. Promise konkrétan:
http://kangax.github.io/es5-compat-table/es6/#Promise
Egyébként túl sokat a dologról nem tudok.
Sk8erPeter
martonx
veterán
.hta kiterjesztéssel valóban lehetőség van windows desktop alkalmazás fejlesztésére.
Amit a telepített IE motor tud, azt a .hta alkalmazásod is tudni fogja. Elég jó dolog.
Win8 vonalon pedig metro alkalmazást is tudsz HTML5-tel csinálni.
Én kérek elnézést!
Zedz
addikt
Köszönöm, utána nézek ennek is! De gondolom akkor ez nem platformfüggetlen.
Kommy
veterán
Sziasztok!
Arra valakinek van ötlete, hogy hogyan tudnám megoldani, hogy van egy php fájlom, itt kiíratok php-val adatbázisból adatokat legördülő menükben (több van) és az lenne számomra a fontos, hogy melyik legördülő menüt húztam le, ennek a választásnak az adatával mennél tovább.
pl zöldsége, gyümölcsök, húsok a három legördülő menü és ha valamelyikből kiválasztom valamelyiket akkor annak a képét rakja ki
Tehát gyümölcsből kiválasztom a körtét akkor a körte képe jelenik meg, tehát tudnom kéne melyik legördülőből melyiket választottam ki.
Ha a select-nek lenne egy fix "id"-ja akkor menne a következővel:
$("#id").change(function(){...}
Jim-Y
veterán
Tudnál mutatni egy kis kódot? Mert ennyiből nem tudom, hogy mi a probléma, és szerintem más sem érti a gondod.
Kommy
veterán
lényeg van egy ilyen js fájlom amiben ez van:
$(document).ready(function() {
$("#track").change(function(){
var value=$(this).children('option:selected').val();
var valueid=$(this).children(':selected').attr("id");
$("#edit").load("result.php?q="+value+"&x="+valueid+"&f=1&c=0");
});
});
És ami a php-ban van mint kimenet:
<select name='track' id="x">
<option id= "y" value="Érték">"Érték"</option>
</select>
És a gondom az lenne, hogy míg ezt kézzel minden változásnál megcsináltam, hogy adtam neki egy fix id-t a select-nek , most ezt szeretném valahogy megoldani, hogy automatán működjön és elég legyen egy ilyen change függvény.
Kommy
veterán
Kicsit módosítottam, rajta, most már nem a select-nek kell az id-ja, mivel az most már egységes
És ami a php-ban van mint kimenet:
<select name='track' id="champ">
<option champ= "id" id= "y" value="Érték">"Érték"</option>
</select>
Ígxy le tudom kérdezni, melyik a kiválasztott legördülő
$(document).ready(function() {
$("#track").change(function(){
var value=$(this).children('option:selected').val();
var valueid=$(this).children(':selected').attr("id");
var valuechamp=$(this).children(':selected').attr("champ");
$("#edit").load("result.php?q="+value+"&x="+valueid+"&f=1&c=0");
});
});
A mostani gond viszont az, hogy csak az első legördülőnél működik, ez miért lehet, a kódot a php generálja, sql lekérdezésekből tehát minden megegyezik bennük semmi eltérés.
Kommy
veterán
Lehet marad az , hogy a js-be írok több sor az azonosítókkal úgyis csak számok.
De miért van az, hogy kiválasztok 1-et, betölt aminek kell, kiválasztok mondjuk ugyan abból akkor már 2 szer tölt be és ahogy nyomkodom egyre többször fut le a js-ben az adott kódrészlet.
martonx
veterán
Szerintem ebben nem fogunk tudni segíteni neked. Így legalábbis biztos nem. Használj jsfiddle-t, ragadd ki az érdekesebb problémákat. De egy komolatt db - php - js problémát pár soros segítségkérések alapján varázsgömb nélkül senki se fog tudni neked megoldani.
Én kérek elnézést!
Karma
félisten
Kód híján annyit tudok mondani, hogy valószínűleg betöltéskor .click vagy .change (v. hasonló) hívással folyamatosan újabb és újabb eseménykezelőket aggatsz szerencsétlen HTML elementekre.
Ha központilag használnád az .on-t, nem lenne ilyen baj.
“All nothings are not equal.”
Sk8erPeter
nagyúr
Szerintem az van, amit Karma említett, hogy az .on()-t kellene használnod, a selectek szülőelemére "aggatva", a selectekre szűrve az .on()-nak paraméterként megadott selectorral.
De amit SOHA többé ne csinálj ( mert egészségkárosító hatású), az a (#4117) azonosítójú hsz.-edben látható, és ROSSZ, NAGYON ROSSZ:
var value=$(this).children('option:selected').val(); // BORZALMAS
var valueid=$(this).children(':selected').attr("id"); // NE CSINÁLD
var valuechamp=$(this).children(':selected').attr("champ"); // ROSSZ
Tudod, hogy van, amikor egy ilyet leírsz, akkor az egy kismacska életébe kerül.
Totálisan feleslegesen futtatod le újra és újra ugyanazt a metódust, ráadásul egymás alatt:
$(this).children(':selected')
--> ennek az értékét tárold el egy VÁLTOZÓBAN, arra találták ki. Ugyanarra az elemre hivatkozol.
Tehát a fentit cseréld le valahogy így:
var $self = $(this);
var $selectedElement = $self.children('option:selected')
var value=$selectedElement.val();
var valueid=$selectedElement.attr("id");
var valuechamp=$selectedElement.attr("champ");
a lényeg: a többször használt elemeket tárold el változó(k)ban, ne kérd le őket újra és újra, mert erőforrás-igényes, még ha nem is veszed észre.
[ Szerkesztve ]
Sk8erPeter
Kommy
veterán
Köszönöm mindenkinek a segítséget.
CSorBA
őstag
Most jött el a kérdés ideje ezzel a hozzászólással kapcsolatban
Azt vettem észre, hogy click eventnél ez teljesen jól működik, viszont scroll esetében valamiért nem fut le, csak direktben pakolva. De az pedig ugye nem lesz jó a később behozott elemek esetén..
Itt a példám: [link] Mi a gond a scrollal?
[ Szerkesztve ]
CSorBA
őstag
Mármint gondolom azért nem fut le, mert a scroll nem bubblingol, ezt hogy tudom mégis megcsinálni?
martonx
veterán
Érdekes, hogy nem működik .on-nal a scroll, a click meg igen. Szvsz semmi köze ahhoz, amit feltételezel, ki kellene próbálni plain js-sel, lehet hogy ez csak valami jquery hiba. Simán működnie kellene: példád letisztítva és a lényegre koncentrálva
Én kérek elnézést!
Zedz
addikt
Sziasztok!
Canvassal vannak problémáim. Van ez a kódom.
És ezt a hibaüzenetet dobja: Uncaught IndexSizeError: Failed to execute 'getImageData' on 'CanvasRenderingContext2D': The source width is 0.
Pedig a kép elérési útja is jó, illetve ha egy kép URL címét adom meg ami egy szerveren van, akkor sem lesz jó. Mi lehet a baja?
trisztan94
őstag
Nem lehet, hogy még nem töltötte be a képet, de már le akarja kérni az adatait? Próbáld az onLoad()-ba rakni a getImageData()-t és az alatta lévőt.
https://heureka-kreativ.hu
Zedz
addikt
dokee78
félisten
Jim-Y
veterán
És ez, hogy jön a javascripthez? Inkább ez lesz a topikod: [link]
[ Szerkesztve ]
dokee78
félisten
Oda is feltettem,segítettek is.
Jim-Y
veterán
Aki szokta használni a Sublime-ot, az esetleg lesse meg ezt is, a héten lett elérhető.
https://github.com/atom/atom
trisztan94
őstag
Már egy ideje elérhető, nekem már úgy 2-3 hete fent van.
https://heureka-kreativ.hu
Sk8erPeter
nagyúr
Jim-Y
veterán
Hónapokkal ezelőtt már én is néztem, de akkor csak OSX-re lehetett feltenni...
martonx
veterán
Jelzem, ma este kijött a Visual Studio 2013 Update 2 is, ami a Web Essentials pluginnel kiegészülve már majdnem WebStorm magasságba emeli a VS-sel is a webfejlesztést.
Én kérek elnézést!
trisztan94
őstag
Ja azt nem vágtam, hogy van Win kliens is azóta, én OSX-re raktam fel.
(#4136) martonx
https://heureka-kreativ.hu
(#4138) fordfairlane válasza trisztan94 (#4137) üzenetére
fordfairlane
veterán
A win kliens az újdonság. Eddig leginkább csak OS X alá volt.
x gon' give it to ya
(#4139) trisztan94 válasza fordfairlane (#4138) üzenetére
trisztan94
őstag
Igen, közben leesett
Nem rossz amúgy, de nem fogom használni. Ott van nekem a Sublime meg a Brackets (mostanában inkább Sublime, sokkal gyorsabb, egyszerűbb kezelni szvsz), komolyabb melóra pedig IDE (Netbeans, Visual Studio, ha úgy adódik). Tehát igazából nem értem, hogy miért csinálták ezt, direkt kompetense akar lenni a Bracketsnek, ami már eléggé kiforrott.
https://heureka-kreativ.hu
Siriusb
veterán
Mármint konkurenciája
trisztan94
őstag
Igen, erre gondoltam, késő volt már
https://heureka-kreativ.hu
Jim-Y
veterán
Szia. Most sikerült erre visszatérnem.
Leszedtem a példád, írtam hozzá egy klienst, de az a gond, hogy a szerverre eljut az információ
{ name: "akarmi" } , tehát az akarmi eljut a szerverig, sikerül meghívni a wsdl alapján a metódust, de kliens oldalra már nem jut vissza a válasz, ott mindig undefined-ot olvasok :/
Most pont ezen vagyok, hogy ezt kijavítsam. Szerintem a wsdl-ben kéne mókolni.
kemkriszt98
aktív tag
Sziasztok, van egy weboldalam ahol van 4 képem (3 kicsi 1 nagy) némi js segítségével megoldottam, hogy mindíg az a kép jelenjen meg nagyba amire ráviszem az egeret ( onmouseover-el). Az én gépemen megy is de ha átmásolom más gépre vagy otthoni szerverre akkor másnak nem. Ha haza megyek kódot is de addig is nincs valami ötletetek?
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
(#4144) Sk8erPeter válasza kemkriszt98 (#4143) üzenetére
Sk8erPeter
nagyúr
Kód nélkül tök felesleges elkezdeni tippelgetni.
Sk8erPeter
(#4145) fordfairlane válasza kemkriszt98 (#4143) üzenetére
fordfairlane
veterán
A képek elérési útja nem jól van megadva, mert mondjuk abszolut URL-ek vannak benne, a meghajtó betűjele, ami másik gépen már nem működik. Esetleg a képeket nem másoltad fel.
x gon' give it to ya
(#4146) kemkriszt98 válasza fordfairlane (#4145) üzenetére
kemkriszt98
aktív tag
Nem mert kicsibe megjelennek, csak mintha a js nem menne de mivel több gépen is kipróbáltam így nem tudom mi lehet de akkor haggyuk, 2 óra múlva jövök a kóddal .
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
martonx
veterán
A js elérési útja van rosszul megadva?
Én kérek elnézést!
Sk8erPeter
nagyúr
Szerintem tényleg nem érdemes tippelgetni, mert lényegében akármit elkúrhatott. Én pont ezért el se kezdtem agyalni, pedig volt pár ötletem, de minek töltsem az időmet vele, hogy lepötyögjem őket, amíg ő sem írta körül jobban.
Sk8erPeter
kemkriszt98
aktív tag
Nem mert nem külön fájlban van, de itt a kód
"Tigris, tigris, csóvafény éjszakáknak erdején, mily kéz adta teneked szörnyü és szép termeted?" -William Blake-
Jim-Y
veterán
Hú-ha, hogy te ezért mit fogsz itt kapni Nem írunk így javascript kódot!
Itt van egy alap cucc kiindulásnak, hogy hogyan kellett volna inkább:
http://jsbin.com/tusunami/1/edit?html,js,output
Nincs időm utánajárni, de biztos van jobb megoldás mint a képek url-jét cserélgetni.