21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
Fisak
Profil
Dobrý den. Rád bych udělal to že bych každou vteřinu zkontroloval jestli není v DB nějaký nový řádek a pokud ano tak ho přidal. Tzn.
setInterval(function(){ $(".main-frame").load("/plugins/ajax/skript.php"); },1000); //pomocí tohoto skriptu bych se ptal na příspěvky.
Dokázal by mi někdo pomoct jak zobrazit při prvním načtení všechny řádky z db a pak je jen kontrolovat a přidávat pokud bude nějaký nový?

Předem děkuji za odpovědi.
unlucky
Profil
Teďka mě napadlo mysqli_info si zjistit poslední query, pak podle toho zobrazovat všechny řádky nebo nové.
Dan Charousek
Profil
Na takto frekventované dotazy by mohlo být lepší použít takzvaný long polling.
Co se prvního requestu týče, můžeš kontrolovat, zda je .main-frame prázdný nebo ne a pak na základě parametru v adrese vracet všechny nebo nejnovější výsledky:

setInterval(function(){
    var main    = $(".main-frame");
    var param   = main.html() == "" ? "all" : "last";
        main.load("ajax/script.php?param=" + param);
}, 1000);
juriad
Profil
Dan Charousek:
Long polling funguje jen se speciálními / speciálně nastavenými servery a provadět dotaz každou sekundu fakt ne. V případě článků myslím stačí něco jako minuta.

Také je nutné první články zapsat do stránky už při jejím generování, pokud by byly přidané JS, někteří uživatelé a vyhledávače by je neznali.
Dan Charousek
Profil
juriad:
Sekundové intervaly jsem jen pro svou lenost nezměnil z původní Fisakovy funkce :)

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0