[JS]Automatikus frissítés (? )
Üdv mindenkinek!
Szeretnék segítséget kérni valamiben.
Szükségem lenne nekem egy olyan scriptre, ami automatikusan frissítené az oldalt tíz másodpercenként,és csak abban az esetben ha egy bizonyos htmles mezőbe van valami írva, tehát tartalmaz legalább egy karaktert.
Ezt folyamatosan kéne szóval végtelen ciklus lesz a vége gondolom.
Lehetőleg valami egyszerűt szeretnék, mert még csak most kezdtem ilyesmivel foglalkozni, a javascriptet pedig még el sem kezdtem tanulni.
Köszönöm!
<!DOCTYPE html>
<html>
<head>
<title>JavaScript frissítés</title>
<script type="text/javascript">
function frissites() {
var value = document.getElementById('szoveg').value;
if (value.length != 0) {
window.setTimeout('frissites()', 10000);
}
}
</script>
</head>
<body>
<form>
<input type="text" id="szoveg" onkeyup="frissites()">
</form>
</body>
</html>
Elnézést csak most látom lemaradt maga a frissítés része, én ezt eseményre írtam. Itt a másik ebben már van frissítés. A szövegmező tartalmának törlése után még az előző megkezdett setTimeout függvény lefut. Ilyen egyszer fordul elő. Az a baj hogy az Interval függvényekkel is ugyan ez a tünet. De ha nem zavar akkor ez is jó megoldás.
<!DOCTYPE html>
<html>
<head>
<title>JavaScript frissítés</title>
<script type="text/javascript">
window.onload = function () {
frissites();
}
function frissites() {
var value = document.getElementById('szoveg').value;
if (value.length != 0) {
window.setTimeout('window.location.reload()', 10000);
}
}
</script>
</head>
<body>
<form>
<input type="text" id="szoveg" onkeyup="frissites()">
</form>
</body>
</html>
Az 1. nem működött,a második ment szépen,köszönöm!
De lenne egy kis gond, nekem akkor kéne frissíteni ha a mező üres, és nem akkor ha van benne
Ezért a !=-t lecseréltem ==-re de így sem jó, mert ahogy újratölt az oldal rögtön elindítja a timer-t, mert ugye alapból üres a mező amikor újra tölt, utána meg hiába írok bele valamit ha a timer elindult,úgyis frissít
Tudnék olyat hogy a mezőnek alap szövege legyen, de akkor meg soha nem frissítene csak ha mindig kitörölném, akkor meg ugyan ott tartok mint egy frissítés gombnál
Szerintem úgy kéne megoldani hogy 10mpnként nézné, de ha talál akkor kapásból frissít, ha meg nem akkor vár megint 10mp-t, és ha kell frissít ha nem nem, ugye ez végtelenül.
Köszi!
window.onload = function () {
frissites();
}
Ha fordítva akarod, akkor ezt a részt töröld ki a kódból. Így nem fut le az oldal betöltésekor, csak akkor ha módosítás történik az adott mezőben.
Ahogy írtad a != operátort írd át == -re ugyan úgy, és akkor ha üres lesz akkor fog frissíteni, ha pedig van benne tartalom nemfog.
Tehát alapból van egy ilyen chatszerűség
Beírod a szövegdobozba a szöveget, ellenőrzi stb felkerül mysqlbe, egy megjelenítő meg kiírja mysqlből az oldalra a szöveget,ki írta ,mikor stb
De ha valaki közben új üzenetet ír oda be ahhoz frissíteni kell az oldalt hogy ő lássa
Ez kéne kb 7-10 mpnként , de azért kell nézni a mezőt hogy amikor ír az ne vesszen el, tehát miközben ír ne frissítsen bele
Közben a te kódod segítségével megcsináltam magamnak.
Köszi! Ment a "Hasznos".
Nem a kérdező vagyok, de már én is törtem a fejem a problémán, és végül is nekem több féleképpen is sikerült megoldanom. Ha úgy csináljuk, mint ahogy azt a Kérdező csinálta azzal van probléma, hiszen ha én éppen egy hosszabb választ adok, addig nem látom hogy Ő közben írt-e valamit, esetleg már el is ment.
Szóval úgy gondolom megoldás lehet (ha ez engedélyezve van a szerveren), hogy van egy külön keret <iframe> a beszélgetésnek (mert így nem kell az egész oldalt frissíteni), van egy keret <iframe> annak a szövegmezőnek ahol írunk, mert onnan ki tudjuk keresni az üzenetet és így nem kell az oldalt frissíteni ha van egy új üzenet.
Gondoljátok át, remélem tudtam valamit segíteni ;)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!