Iframe 1 másodpercenkénti újratöltése Ajax-szal
Sziasztok!
Kb 2 órája falom a netet de egyszerűen nem találok olyan anyagot amin eltudnék indulni. Az lenne a kérdésem, hogy valaki nem tud-e egy olyan scriptet, hogy adott egy frame :
<iframe src="jatekosok.php?ip=000.000.000.000&port=00000" frameborder="0"></iframe>
és itt azt szeretném megoldani, hogy ez a frame frissüljön 1mpként, de úgy, hogy ne látszódjon az. Erre úgy hallottam, hogy van az ajax. Ez nekem megy is, csak annyi a gondom, hogy nem tudom megoldani azt, hogy ne gomb nyomásra frissüljön, hanem dinamikusan 1MP-ként.
Egy megoldást már találram rá, de azt nem tudtam megoldani, hogy 1MPként frissüljön reload nélkül. A setTimeOut(); al próbálkoztam de nem jött össze :S
A lecke itt található : http://www.tutorial.hu/node/1041
Kérem aki tud segítsen nagyon sürgős lenne, köszönöm!
Üdv, Bence.
■ Kb 2 órája falom a netet de egyszerűen nem találok olyan anyagot amin eltudnék indulni. Az lenne a kérdésem, hogy valaki nem tud-e egy olyan scriptet, hogy adott egy frame :
<iframe src="jatekosok.php?ip=000.000.000.000&port=00000" frameborder="0"></iframe>
és itt azt szeretném megoldani, hogy ez a frame frissüljön 1mpként, de úgy, hogy ne látszódjon az. Erre úgy hallottam, hogy van az ajax. Ez nekem megy is, csak annyi a gondom, hogy nem tudom megoldani azt, hogy ne gomb nyomásra frissüljön, hanem dinamikusan 1MP-ként.
Egy megoldást már találram rá, de azt nem tudtam megoldani, hogy 1MPként frissüljön reload nélkül. A setTimeOut(); al próbálkoztam de nem jött össze :S
A lecke itt található : http://www.tutorial.hu/node/1041
Kérem aki tud segítsen nagyon sürgős lenne, köszönöm!
Üdv, Bence.
nos
egyáltalán minek iframe? ha csak az oldal egy részét akarod frissíteni, ajaxal azt is lehet. beraksz egy divet az iframe helyére, és ajaxal oda töltöd be feldolgozandó script tartalmát.
settimeout lesz a megoldás kulcsa, ha megnézed a tutorialhu-n se iframeznek, hanem divbe tölti vissza, tanulmányozd a kódot, a google-el is bőven találsz ajax tutorialokat
Hogy mire kéne?
Pontosan ez egy szerver figyelő script és van egy rész, amivel az online usereket nézem. ( Ez egy Multiplayer játék szerver figyelő a Jedi Academy-hez )
Itt egy kép :
http://mapdesignupload.extra.hu/img/upload/f5891be64561918a3955f00c560efbdf.png
A kép szerint önmagáról beszél, hogy miért szeretném frissíteni 1 MP ként :) Ez Online vagyis Élő statisztika a szerverekről.
És ez a játékos lista , amit szeretnék frissítgetni újratöltés nélkül.
A kép alapján
hehe
betöltéskor frissítés, majd percenként/ jó félpercenként ráfrissíteni bőven elég szerintem is
Link
Mit szeretnék pontosan...
Tehát újratölti csak ne láccon. Meg IE ben kattog :S Szal ezért választanám inkább az AJAX-ot . És azt nem tudtam megoldani ,hogy dinamikusan töltölődjön újra és ne gomb nyomásra.
A scriptem megvan rád de az DIV-es megoldás ami szintén nem jó. Így nézne ki :
Eddig oké...
1. Írod, hogy próbálkoztál a setTimeout függvénnyel. Esetleg mutasd meg, hogy hol akadtál el vele, és akkor azzal megyünk tovább.
2. Ha mondjuk a prototype.js-t használnád, abban létezik egy Ajax.PeriodicalUpdater, ami egyszerűen pont azt tudja, amit szeretnél.
Ez utóbbihoz találtam is egy rövid példát, szerintem ez alapján simán meg kell, hogy tudd csinálni: http://groups.google.com/group/Prototypejs/web/ajax-periodicalupdater-example
2.
Majd 5-6 óra fele leszek.
Linkelt példa
setTimeOut();
így
de a settimeout csak egyszer fog lefutni, a végén lévő szám a másodperc ezred része (vagyis 1 másodperc 1000), 30000 kellene a félperchez, illetve settimeout helyett setInterval-al próbáld (ez folyton ismétlődik)
Szerintem bontsd szét a problémákat!
Szerintem bontsd szét a problémákat és lépésről lépésre elemzed!
1. Mi az az AJAX, mi a célja és hogyan működik.
2. Mi az a setTimeout és hogyan működik.
3. Hogyan érünk el egy objektumot a html dokumentumban.
1.
A teljesség igénye nélkül az AJAX (Asszinkrónus Java Script és Xml) semmi más, csak egy olyan JavaScript függvények összessége, amely az XMLHttpRequest objektum segítségével kérést intéz a szerverhez a kliens böngészőjéből, anélkül, hogy annak tartalma újratöltődne. Az AJAX egy technológia, nem egy programozási nyelv!
Normál esetben a kliens szerver modell valami ilyesmi Kliens szerver
Ha frame-et használsz, annyiban jobb a helyzet, hogy a teljes oldalnak nem kell újratöltődnie, elég csak annak a keretnek, ami szállítja a tartalmat. Kliens szerver + frame
Ha viszont JavaScript-el teszed mindezt, használatba véve az XMLHttpRequest objektumot, akkor valahogy így nézünk ki: Kliens szerver + AJAX
Na már most, ha ezzel megvagyunk, akkor már azt tudjuk, hogyan megy a kérés a szerverre és hogyan érkezik az adat!
2.-3.
Ha megvannak az adatok, frissíteni kell a z oldalunk tartalmát! Egy idézet tőlem:
Az emberek kapnak nevet, és kapnak azonosítót (személyi számot). Képzeld el hogy összegyűlik 100 ember, akik közül biztos van több János és István. Ha elkiáltod magad: „Istvánok cseréljetek pólót fehérről feketére!” valószínűleg néhányan elkezdik a cserét, a többiek meg gondolják ha már más lecserélte ők minek strapálják magukat!
De ha azt mondod 111111111, 2222222, 12522333, 2353532 személyi számú Istvánok cseréljetek pólót feketéről fehérre, az simán menni fog! Igaz?
Képzeld, a HTML dokumentumban minden objektum (kép, keret szöveg stb.) ugyan így megszólítható! Adsz neki egy egyedi azonosítót, és onnantól kezdve minden attribútumát eléred!
Változtathatod a színét, a hivatkozását, a méretét, a helyzetét, a tartalmát stb. Minden attribútumát eléred!
A próbálkozásod a frame frissítésére nem volt rossz, de előtte adj egy egyedi azonosítót a kretnek pl.: id="keret". Készíts a frissítésre egy függvényt és azt hívd meg setTimeout-tal pl.: (jó különben a név alapján történő elérés is)
s_volenszki
Problémákra bontást..
Az első problémám ugyanis az lenne, hogy nem tudom megoldani azt, hogy egy X frame frissüljön újratöltés nélkül. Most itt egy példa link :
http://mjc.dy.hu/tso/index.php ( Itt nincs újratöltés )
A frame autómatikusan méretezi magát az adott tartalomhoz. Ezt egy script segítségével sikerült elérnem ami a következő :
Van egy olyan megoldás is, amit ha a frame tartalmán belül teszek, akkor 5 MP útán újratölti. Ami így nézne ki :
http://mjc.dy.hu/test/684b905860da50bc5610c335ee2ff137.php?ip=87.229.7.53&port=29040
( Ez egy teszt szerver, amin általában vannak játékosok )
Itt meg frame-val együtt :
http://mjc.dy.hu/test/index.php
Kód :
Erre szeretnék tippet kérni, hogy milyen script-et lehet erre használni, hogy FRAME dinamikus frissítése újratöltés nélkül X MP után.
--
Válasz a hozzászóláshoz :
--
Igen ez így jó is! Egy kérdésem lenne még. Ügye van a <A HREF=""></A>-hez, hogy CLASS- azaz osztály. Az újratöltést osztályhoz, vagyis CLASS-hoz szeretném programozni és így menne a frissítés újratöltés nélkül.
Nos létezik ez a : htmlhttprequest, ezzel meglehet azt oldani, hogy X frame frissítése dinamikusan újratöltés nélkül? ( Részben az egész kérdésem ebből áll :) )
--
Köszönöm a segítséget előre is!
Üdv, Bence.
Majdnem jó!! :)
elméletileg sztemjó:)
üdv, bence.
Figyelj csak!
Az iframe-ed nem fog újratöltődés nélkül frissülni! Ha megnézted a képeket amiket belinkeltem, ott láthatod, hogy a html-be ágyazott iframe, majdnem olyan, mintha lenne egy újabb "böngésző" ablakod a dokumentumon belül! Ezért, annak a tartalma kizárólag úgy tud frissülni, hogy újra töltődik!
Én tökéletesen értem a problémádat és látom a megoldást is, de úgy érzem, hogy hiányos a tudásod!
Elemezzük egy kicsit a helyzetet (csak felületesen):
Ha AJAX segítségével készítesz egy alkalmazást, az a következő módon működik:
Kliens oldalon JavaScript-tel, létrehozol egy új XMLHttp kérést, amely kérés célja a szervereden egy fájl. Tételezzük fel, hogy a cél a teszt.php. Ha a teszt.php tartalma a következő:
Én a következőt tenném!
Az egész fájlt, ami neked ezt a kiértékelést végzi, átalakítanám úgy, hogy ne a bőngészőbe tolja a kimenetet, hanem egy változóba. Ezek után ha meghivnám AJAX-szal, változót ki echo-ztatnám a végén, így megérkezne a hőn áhított tartalom kliensre. Itt meg egy előre elkészített üres div-hez innerHTML-el hozzáfűzheted, vagy annak aktuális tartalmát felcserélheted.
Csak hogy értsd! Ez a kód egy táblázat kódja php print-tel escape-elve:
Szóval írd át a kiértékelő fájlodat, hogy a kimenete kerüljön be egy változóba, aztán hajrá, de én azt javaslom, készíts magadnak egy minta alkalmazást, amivel megérted, hogy ez hogyan működik! Elég, ha az általam említett példát megépíted az echo "Hali";-val!
s_volenszki
nem értem minek összefűzni
ajaxot amúgy úgy kell elképzelni, mint egy böngészőt a böngésződbe: "megnyit" a js egy weboldalt, de amit te ott látnál, ő azzal az értékkel visszatér. Aztán, hogy utána mi lesz a sorsa az adatnak, az már csak rajtad múlik, általánban egy innerHTML-ben végzi.. :)
...jogos...
A változóba fűzéssel érzékeltetni akartam, hogy az AJAX kérés visszatérő értéke olyan, mintha egy változó értékével térne vissza (gondoltam, kicsit jobban emészthető, mint a böngészőben a böngésző, aminek a tartalma az amit látnál, de nem látsz :) )! Aztán a végén, az innerHTML-el még DOCTYPE-ot, komplett JavaScript és CSS implementációkat is hozzáad a div-hez.
s_volenszki
Siker.
Sikerült megoldani a problémát és megfelelően működik a script :)
Üdv, Bence.
Igazán örülök!
s_volenszki
Itt az eredmény >>>
Commercial advertisers often