Hogyan oldhatom meg, hogy ha egy file-ba kerül egy új sor, töltse újra az oldalt?
Egy egyszerű webes chat programot írok és a szerveren egy fájlban tárolom az üzeneteket (minden sorban egyet). A program kiíratja az előző üzeneteket, majd egy szövegmezőt, ahova a felhasználó írhatja az üzenetet.
Amikor elküldi, újratöltődik a lap, de egyébként nem látja azokat az üzeneteket, amiket az oldal frissítése óta írtak. Lehetséges az, hogy ha a sizeof(file('messages.txt')) (php) nagyobb, mint az oldal betöltésénél kapott érték (ezt egy változóban tárolom) akkor töltődjön újra az oldal?
A lap újratöltessél az a gond, mi van ha épp gépel a user ?
Nem túl hatékony, de jelen szintnél működő módszer, ha kiteszed az input mezőt az üzenet írásához,
alá pedig egy div-et.
<div id="uzenetek"></div>
Ugyanerre a lapra tehetsz egy kis JS kódot, ami egy külső (uzenetek.php) PHP fájlból vissza adja az üzeneteket, az utolsó X darabot, és 10 másodpercenként frissíti a DIV-be.
<script src=" [link] type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
ujratolt();
});
function ujratolt(){
$('#uzenetek').load('uzenetek.php', function(){
setTimeout(ujratolt, 10000);
});
}
</script>
Aztán utána bogarászhatod a netet, hogy csak akkor frissítsd a div-et, hogyha tényleg új üzenetet írtak a fájlba.
Ha éppen gépel a user, arra is van megoldás.
A lapot horizontálisan két frame-re kell osztani, az alsóba kerülhet az input box, a felsőbe meg az üzenetek. Természetesen ilyenkor csak a lap felső fele fog frissülni, abba érdemes illeszteni a "refresh" sort.
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!