W jaki sposób najbardziej poprawnie zrobić automatyczne odświeżanie konkretnej strony lub jej kawałka po wykryciu zmian? Mam na myśli, jak to jest zrobione w profesjonalnych projektach?
Mój pomysł wygląda tak:
$(function(){ lastUpdate = 0; function getContent(){ jQuery.post('content/products.php', function(data){ jQuery("#productsContent").html(data); }); } function checkUpdate(){ $.ajax({ url: 'content/ajax.php', type: 'GET', data: { action: 'checkUpdate' }, success: function(data){ if(data != lastUpdate){ getContent(); lastUpdate = data; } } }); } checkUpdate(); setInterval(function() { checkUpdate(); }, 5000); });
W divie trzymam treść odpowiadającą za listę produktów. Co 5 sekund wysyłam zapytanie do skryptu ajax.php. Plik ten zwraca mi wartość zapisaną w bazie MySQL.
Jeżeli dodamy produkt to aktualny czas w formacie UNIX zostanie zapisany do tego pola w bazie.
Czy jest to dobrze zrobione? Może są jakieś lepsze metody? Proszę o opinie.