Jak wymusić pobranie zaktualizowanych danych z tabeli MySQL bez odświeżania strony
1 Odpowiedź
Proponuję stworzyć cykliczną funkcję w Javascript (Przyda się polecenie setTimeout do cyklicznego wywoływania funkcji). Javascript powinien wywołać POST dla serwera. W pliku .js mam taki fragment:
OForPost[‘Akcja’] = Akcja;
$.post(BaseURL, OForPost,
function(data, status){
switch (Akcja) {
case “[iProces]”:
iProcesCD(data, Akcja, BaseURL, OForPost);
break; //cd oczywiście wymagany
Powyższy zapis wymaga załadowania w nagłówku biblioteki JQuery (np jquery-3.4.1.min.js)
Przez OForPost zasilamy wywołanie POST.
OForPost możemy zainicjować w pliku .js. na przykład tak:
function iProces(adres, nazwa, …dane) {
OForPost = new Object();
OForPost[‘Tabela’] = nazwa;
Funkcja JS iProcesCD otrzymując dane z wywołanego skryptu na serwerze może “zastąpić” kawałek widocznego fragmentu strony tak:
document.getElementById(“forpproc”).innerHTML = data;
W kodzie strony musi być obszar
<div id=’forpproc’>…</div> obejmujący fragment, który podlega aktualizacji.
Oczywiście to przykład ogólny. Zakłada cykliczne odświeżanie. Dzięki temu na stronie możemy zrobić na przykład okno Chat. Tego typu akcję jednorazowo możemy dokładnie podobnie wywołać naciskając klawisz na stronie, który będzie miał postać:
<button onclick=’iProces(…..