Ajax?
Viszonylag sok tutorialban látok olyat, hogy Ajax hívásra HTML választ várnak, amit 1:1-ben betöltenek a lap egyik elemének innerHTML-jébe.
Dehát az Ajax-nak már a nevében is ott van az XML! Miért nem ezt mutogatják a tutorialokban? (csak én vagyok figyelmetlen, "jó" szokásomhoz híven?)
Én úgy képzelek egy komolyabb ajaxos feladványt, hogy a szerver, az ajaxos kérésre egy XML dokumentumot küld vissza, amit a responseXML-ből dolgozok fel a DOM metódusok/property-k(??) segítségével.
Tehát ha szükségem van arra, hogy megjelenítsek egy nagy halom képet diafilmszerűen, akkor ajax-ból lekérem a file-ok listáját valami ilyen formában:és a responseXML.getElementsByTagName("img") formában(*) kérem el a képek nevét, majd ezeket illesztem be a megfelelő helyekre.
Mielőtt ennél alaposabban belemásznék a témába: jó ez az elképzelés?
(egyetlen dolgon fennakadtam: IE-ben .text, egyéb browserben .textContent tartalmazza a tagek értékét, ami nem kicsit bosszant - ezt leszámítva ugyanis a FF és az IE9 egyformán működött)
(*) - tudom, előbb az "images"-t kellene kikérni és csak abból az "img"-ket.
■ Dehát az Ajax-nak már a nevében is ott van az XML! Miért nem ezt mutogatják a tutorialokban? (csak én vagyok figyelmetlen, "jó" szokásomhoz híven?)
Én úgy képzelek egy komolyabb ajaxos feladványt, hogy a szerver, az ajaxos kérésre egy XML dokumentumot küld vissza, amit a responseXML-ből dolgozok fel a DOM metódusok/property-k(??) segítségével.
Tehát ha szükségem van arra, hogy megjelenítsek egy nagy halom képet diafilmszerűen, akkor ajax-ból lekérem a file-ok listáját valami ilyen formában:
<?xml version="1.0" encoding="utf-8">
<images>
<img>1.file.neve.jpg</img>
<img>2.file.neve.jpg</img>
...
<img>n.file.neve.jpg</img>
</images>
Mielőtt ennél alaposabban belemásznék a témába: jó ez az elképzelés?
(egyetlen dolgon fennakadtam: IE-ben .text, egyéb browserben .textContent tartalmazza a tagek értékét, ami nem kicsit bosszant - ezt leszámítva ugyanis a FF és az IE9 egyformán működött)
(*) - tudom, előbb az "images"-t kellene kikérni és csak abból az "img"-ket.
Történelmi
Köszi! Egyébként kivételesen
Egyébként kivételesen valóban kliensoldali feldolgozásról van szó, szóval kicsit macerás lenne HTML-t visszakérni és abból dolgozni, de így érthető a tutorial szerzők hozzáállása.
(pár napja valaki bedobott egy kérdést valami dia "vetítő" script kapcsán, azt próbálom a saját szórakoztatásomra összetákolni. :-)
És mennyivel egyszerűbb ha a
string.split(/\s+/)
ami 'white space' mentén szét szedi egy tömbbe a file neveket, és onnan szabad a pálya, az xml ebben az esetben kimondottan hülyeség, ha csak nem valami komoly xml szabványon működő alkalmazásról van szó. Szerintem...Pl: mi a biztosíték arra,
(azon túl, hogy momentán én neveztem el őket, tehát tudom, hogy nincs ;-) )
De nem is ez a lényeg: csak azon értetlenkedtem, hogy ha egyszer az ajax valójában XML-re épülő kommunikációt jelent, akkor miért nem úgy használják?
urlencode
A JSON már jobban hangzik
(kb. tudom, mi az, de életemben nem használtam, doksit sem néztem hozzá, XML-lel meg már találkoztam néhányszor)
A szóköz kapcsán: Karway kihagyott egy lényeges apróságot. Most épp arra használom (mert játszom, ismerkedni próbálok a technológiával), hogy képfájlok neveit adogassam vissza a szerverről. De mi van, ha mondjuk egyéb, szöveges adatokat akarok visszaadni, amit a javascriptnek kell feldolgoznia?
A JSON változat (ha szerver oldalon össze bírom rakni) működik, de a szóközök mentén történő szétvagdosás ugye... ;-)
Természetesen, a splittelés
JSON használatára tudnátok
Többé-kevésbé felfogtam (ha jól értem, nagy vonalakban egy szerializált objektum küldözgetéséről szól), de a gyakorlati hasznosítással így első nekifutásra nem boldogulok.
Konkrét példa:
PHP-ből json_encode-dal visszadobok egy asszociatív tömböt, ebből kliens oldalon a JSON.parse egy objektumot készít tömb helyett (vagy a hiányos JS ismereteim jelentik a probléma lényegét és JS-ben nincs asszociatív tömb, ezért lesz belőle objektum?)
Ami így első ránézésre azért gáz, mert a visszaadott objektumon nem tudok végigmenni, mint egy tömb elemein... (vagy már megint a JS ismereteim hiánya)
Keress!
http://www.google.com/search?q=object+iteration+javascript
pp
JavaScript
json_encode
-dal. JavaScript-ben pedig afor..in
ciklussal tudsz végigmenni az elemen.Példa:
obj.a
,obj.b
).Köszi, lásd lentebb,
Jelen esetben azért jött elő a bejárás témája, mert az eredeti példám az volt, hogy ajax segítségével kérem le az elérhető képek listáját. Ezt XML esetén egy getElementsByTagName segítségével le tudom érni, de félkómás állapotban nem tudtam eldönteni, mit csináljak vele, ha JSON formában érkezik a lista.
Nem tudom, hogyan próbáltad
for in
ciklussal járjuk be.Félálomban, miközben már
Szóval bocs mindenkitől, nem néztem igazán utána a témának, úgy kérdezősködtem.
ui: ez a console.log csak akkor műxik, ha van firebug is, ugye?
A console.log ott működik
ui.: Például integrált fejlesztői környezetkben (IDE) is van console, Én Eclipse-t használok, a Mozilla írt egy Rhino neveztű JavaScript értelmezőt, amit a Eclipse external tools részén belehet lőni, ezután a js fájlokat tudjuk futtani a konzolon is, nem kel böngésző, terméseztessen a böngésző által hostolt dolgokat innen nem éred el, de a js minden elemét tartalmazza ami rövid kódok teszteléséhez jó felület ad.
OK, ezt csak azért kérdeztem,
Na jó, XML megmarad arra az
Némileg egyszerűbb a JSON-t feldolgozni, ha tudom, hogy hogy kell... :-)
* - amit láttam MQSeries-ből, ott XML üzenetek közlekedtek.
Weben a fájlok nevében nem
XMLHttpRequest
ami nem első sorban az xml miatt lett kitalálva, hanem HTTP protokollt használó kommunikációra.Az ajax-nak annyi a lényege,
Az XML használatának a legnagyobb akadálya sztem az msie...
var globImages={}; /* a
Ez, amit itt elkövettem vagy inkább rakjam össze stringként és illesszem be az "imagelist" id-jű div innerHTML-jébe?
documentFragment
uff... hogy nem csak a végén
Ez a DocumentFragment viszont újdonság volt, köszi!
Ha még élek, akkor holnap reggel végigolvasom a linkelt írást.
jquery?
nem
Ha már jQuery, akkor inkább így:
1. Nem ismerem és túl nagy
2. Játszom, tanulgatok, ilyesmi, ehhez egyébként sem kell keretrendszer.
3. Egyébként is utálok idegen keretrendszert használni. Nincs munkám, tudásom ahhoz kevés, hogy ilyen jellegű munkát kapjak, akkor meg jobb szórakozás sajátot készíteni, amibe bármikor belenyúlhatok és úgy alakítom, ahogy nekem tetszik.
Ha egyszer valami csoda folytán eljutok oda, hogy pénzért dolgozzak, lesz annyi alapom, hogy pár hét alatt beletanuljak bármely keretrendszer alapjaiba.
Ezek a saját szempontjaim. Érvényesek javascriptre, PHP-re, ruby-ra, mindenre... :-)
megértem az álláspontodat, én
Ma is tanultam, jQuery().append nem is tudtam h így lehet használni, utánna olvasok, köszi.
Keretrendszer nélkül nem
Pláne a mai világban.
Inkább arról lenne szó, hogy milyen keret? Saját vagy külső fejlesztés?
Ha valaha rászánom magam végre, hogy mélyebben foglalkozzak a témával, akkor PHP és JS esetében valószínűleg a saját mellett voksolok. Pl. Java-hoz vagy ha valami katasztrófa folytán .net környezetbe keverednék, már biztosan nem kezdenék sajáttal a feladatok mérete miatt.