NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
Marek Burda
Člen
Avatar
Marek Burda:8.9.2017 12:23

Ahoj :) Na stránke mám tento scriptík ktorý mi zavolá každú pol sekundu php script - ten zoberie z db data a vypíše ich tu. Tento scipt mám na viacerých stránkach a problém je ten, že ked načítam stránku, trvá pol sekundy kým sa zobrazí výsledok a to potom nieje pekné a stránka vyzerá akoby sa dlho / postupne načítavala. Vieme tento kód upraviť nejak tak aby spustil php kod pri načítaní stránky a následne ho už iba znovu načítaval ? Tam by som si mohol dovoliť dať kľudne už aj timeset na 10 sekúnd aby som nezaťažoval moc db :) Len sa mi nedarí to spustiť hned na začiatku po reloade stránky. Ďakujem za pomoc :)

<div class="result_right"></div>
<script>
    function refresh_div() {
        jQuery.ajax({
            url:'rightstats_script.php',
            type:'POST',
            success:function(results) {
                jQuery(".result_right").html(results);
            }
        });
    }

    t = setInterval(refresh_div,500);
</script>
Editováno 8.9.2017 12:23
 
Odpovědět
8.9.2017 12:23
Avatar
Aleš Lulák
Člen
Avatar
Odpovídá na Marek Burda
Aleš Lulák:8.9.2017 14:53

Ahoj, nestačí jen rovnou zavolat refresh_div() před intervalem?

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
8.9.2017 14:53
"I disapprove of what you say, but I will defend to the death your right to say it" - Evelyn Beatrice Hall
Avatar
Marek Burda
Člen
Avatar
Marek Burda:8.9.2017 14:56

Heh to mi nenapadlo :D ja som myslel že tá funkcia rovno berie stále do úvahy ten čas.. Dobre už mi to pekne klape dakujem :) A sorry za čas: )

 
Nahoru Odpovědět
8.9.2017 14:56
Avatar
Odpovídá na Marek Burda
Wal De Mar-Lad:8.9.2017 15:56

Máš to zbytočne komplikovane napísané, úplne Ti stačí toto:

<script>
function refresh_div (url) {
  $('.result_right').load(url, _ => setTimeout(refresh_div, 500))
}

refresh_div('rightstats_script.php')
</script>

Navyše je to lepšie v tom, že nové volanie refresh_div() sa uskutoční pol sekundy po dokončení predošlého. To znamená, že keby aj zakolísala rýchlosť pripojenia na net, tak sa Ti zbytočne nenavŕšia napríklad 2 - 3 volanie refresh_div() hneď po sebe.

Nahoru Odpovědět
8.9.2017 15:56
Libraries over frameworks...
Avatar
Odpovídá na Marek Burda
Wal De Mar-Lad:8.9.2017 16:25

Vlastne, keď už univerzálne riešenie, tak takto:

<script>
function refresh_div (div, url, interval) {
  $(div).load(url, _ => setTimeout(refresh_div, interval))
}

refresh_div('.result_right', 'rightstats_script.php', 500)
</script>

Lebo takto to môžeš využiť viackrát, nech sa obnovuje zároveň aj iný div, z iného skriptu, za iný čas:
refresh_div('­.iny_div', 'iny_skript.php', 1000)

Editováno 8.9.2017 16:26
Nahoru Odpovědět
8.9.2017 16:25
Libraries over frameworks...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.