PHP Nette AJAX - jak provádět autorefresh dat z databáze?
Dobrý večer, zkouším pomocí PHP + Nette + AJAX zprovoznit vlastní chat box. Zasekl jsem se ale na tom jak docílit automatického (pravidelného) refreshování chat boxu pomocí AJAX místo znovunačítání celé stránky. Samotný AJAX refresh mi funguje pomocí handleChatRefresh, ale já chci ať to probíhá automaticky. Chci dosáhnout toho, aby se natáhla nová data z databáze a uživatel viděl, zda už protistrana odpověděla bez reloadu celé html stránky. Mohl by mě prosím někdo nasměrovat jak to udělat? Díky
Dobrý den,
pokud Vám ajax refresh funguje přes nette handle metodu, tzn. po kliknutí na tlačítko se provede handle, tak nejjednodušeji můžete provádět auto refresh pomocí javascriptu, který bude pravidelně klikat na dané tlačítko např. dle id.
Tento javascript s nekonečným cyklem (infinite loop) každých 10s klikne na tlačítko s id="refreshBtn":
Pokud byste to chtěl udělat pořádně, tak si něco přečtěte o WebSocketech, řešení výše je spíše humpolácké.
ODPOVĚĎ
Dobrý den,
pokud Vám ajax refresh funguje přes nette handle metodu, tzn. po kliknutí na tlačítko se provede handle, tak nejjednodušeji můžete provádět auto refresh pomocí javascriptu, který bude pravidelně klikat na dané tlačítko např. dle id.
Tento javascript s nekonečným cyklem (infinite loop) každých 10s klikne na tlačítko s id="refreshBtn":
var interval = setInterval(refresh, 10000);
function refresh() {
var r = document.getElementById('refreshBtn');
r.click();
}
function nullTimer() {
clearInterval(interval);
}
Pokud byste to chtěl udělat pořádně, tak si něco přečtěte o WebSocketech, řešení výše je spíše humpolácké.