Automatikus frissítés
Sziasztok!
Egy kérdéssel/kéréssel fordulok hozzátok ismét.
A problémám az , hogy egy adott script segítségével szeretném ha az oldal 10 másodpercenként újratöltődne, hogy a mysql-ből lekért adatok automatikusan frissüljenek. Ez eddig működik is, csak az oldalon található egy form is, benne egy textarea, amibe ha pont írnak akkor a frissítés miatt törlődik a begépelt tartalom.
Gondolom kitaláltátok, amolyan chat szerűségről van szó. Beállítottam hogy a script csak akkor fusson le ha a textarea mezőnek az értéke =0. A probléma a következő:
Csak akkor frissül, ha írok valamit a mezőbe majd kitörlöm. Amit szeretnék, hogy 10 másodpercenként frissüljön esemény nélkül, de ha épp szöveget írnak akkor ne frissüljön. Nem tudom mi a hiba, remélem megvilágítjátok hogy mi a baj, a menyasszonyom szerint az hogy belevágtam a chat-dologba.
Bemásolom a scriptemet (enyém mert én loptam egyes egyedül :)) meg a formot is.
Van sok chat-es és oldalrész frissítős fórum a google-ben, de ha mód van rá akkor ezzel szeretném megoldani. Előre is köszönöm a segítséget/kritikát/hozzászólást mindenkinek.
■ Egy kérdéssel/kéréssel fordulok hozzátok ismét.
A problémám az , hogy egy adott script segítségével szeretném ha az oldal 10 másodpercenként újratöltődne, hogy a mysql-ből lekért adatok automatikusan frissüljenek. Ez eddig működik is, csak az oldalon található egy form is, benne egy textarea, amibe ha pont írnak akkor a frissítés miatt törlődik a begépelt tartalom.
Gondolom kitaláltátok, amolyan chat szerűségről van szó. Beállítottam hogy a script csak akkor fusson le ha a textarea mezőnek az értéke =0. A probléma a következő:
Csak akkor frissül, ha írok valamit a mezőbe majd kitörlöm. Amit szeretnék, hogy 10 másodpercenként frissüljön esemény nélkül, de ha épp szöveget írnak akkor ne frissüljön. Nem tudom mi a hiba, remélem megvilágítjátok hogy mi a baj, a menyasszonyom szerint az hogy belevágtam a chat-dologba.
Bemásolom a scriptemet (enyém mert én loptam egyes egyedül :)) meg a formot is.
Van sok chat-es és oldalrész frissítős fórum a google-ben, de ha mód van rá akkor ezzel szeretném megoldani. Előre is köszönöm a segítséget/kritikát/hozzászólást mindenkinek.
<script type="text/javascript">
window.onload = function () {
frissites();
}
function frissites() {
var value = document.getElementById('szovegmezo').value;
if (value.length == 0) {
window.setTimeout('window.location.reload()', 10000);
}
}
</script>
<form method="post">
<textarea name="szovegmezo" id="szovegmezo" onkeyup="frissites()"></textarea>
<input type="submit" name="submit" value="mehet">
</form>
Kézikönyv
setTimeout
átnéztem a leírását, de nem tudom mi lehet a hiba. A setTimeout csak eseményre reagál? Ez lehet a gond?
setTimeout
Hibakeresés
Nem ez okozza a hibát, de fontos
Íme a megfelelő használat (függvényt adunk át, nem stringet!):
Kell oda az a névtelen függvény? :S
Hát, nem tudom, konkrétan a
Igaz
...
Az eredeti logikád hibás, ha
közönség...
Ha van JavaScript az oldalon
A szövegmezőnek függetlennek kéne lennie mindentől. Submit-ra betolja az adatbázisba az új adatokat a háttérben, a megjelenítést meg egy másik rutin végzi.
Az egész oldalt csináld meg JavaScript nélkül. Jelenítsd meg az adatbázis adatait egy oldalon, tegyél mellé egy űrlapot amin keresztül új adatokat töltesz az adatbázisba. Ha ez megvan akkor AJAX-ositod az oldalt: Az adatokat AJAX-al frissited, az űrlap submit eseményét lekezeled egy eseménykezelővel, amiben össze raksz egy HTTP kérést és betolod adatbázisba az adatokat (evvel egy időben, meg akadályozod az űrlap deault action-jét (tipikussan
e.preventDefault()
).frame-ek?
:)
igen.chat akkor jó, ha van
chat akkor jó, ha van folyamatos kapcsolat a két fél között.
viszont van egy elégedett menyasszonyod (ha végre ismét vele foglalkozol) és még okosabb is lettél.
valahol mindenki elkezdi. hajrá!
iframe
iframmel csináltam meg a dolgot, az alap oldal ahol a beszélgetés zajlik, ott van a szövegmező meg minden egyéb, a mysql-lekérést pedig egy iframe-be raktam, annál pedig beraktam a scriptet ami frissíti 10 másodpercenként.
Köszönöm mindenkinek a segítséget, van még egy két sötét folt pár dologgal kapcsolatban, de az már egy másik forum lesz. :)
UI: másoljam be a jó megoldást?