Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][PHP] Automatyczne odświeżanie treści po zmianach
lsrtb
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


Witam.

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:

[JAVASCRIPT] pobierz, plaintext
  1. $(function(){
  2.  
  3. lastUpdate = 0;
  4.  
  5. function getContent(){
  6. jQuery.post('content/products.php', function(data){
  7. jQuery("#productsContent").html(data);
  8. });
  9. }
  10.  
  11. function checkUpdate(){
  12. $.ajax({
  13. url: 'content/ajax.php',
  14. type: 'GET',
  15. data: { action: 'checkUpdate' },
  16. success: function(data){
  17. if(data != lastUpdate){
  18. getContent();
  19. lastUpdate = data;
  20. }
  21. }
  22. });
  23. }
  24.  
  25. checkUpdate();
  26. setInterval(function() { checkUpdate(); }, 5000);
  27.  
  28. });
[JAVASCRIPT] pobierz, plaintext


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Lord
post
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


https://pl.wikipedia.org/wiki/Obserwator_(w...zec_projektowy)
Go to the top of the page
+Quote Post
markuz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Źle zrobione, nie optymalnie - to serwer powinien informować klienta o zmianach, a nie klient co jakiś czas pytać serwer czy coś się zmieniło np. za pomocą websocket.

Ten post edytował markuz 28.09.2018, 15:23:47
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@Lord odnosze wrazenie ze nie zrozumiales problemu
Go to the top of the page
+Quote Post
Lord
post
Post #5





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


Cytat(nospor @ 28.09.2018, 16:32:13 ) *
@Lord odnosze wrazenie ze nie zrozumiales problemu

Taaaa, to już dziś 2 w wpadka...
Go to the top of the page
+Quote Post
lsrtb
post
Post #6





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 22.11.2015

Ostrzeżenie: (0%)
-----


Proszę zatem o więcej informacji jak to ma być zrobione. Wiem, że to nieoptymalne. Przy dużej liczbie użytkowników obciążam serwer. Nie oczekuję gotowego kodu, ale więcej wskazówek.
Go to the top of the page
+Quote Post
markuz
post
Post #7





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Tworzysz serwer websocket.
Każdy klient łączy się z tym serwerem za pomocą JavaScript.
Jak ktoś doda produkt, to serwer wysyła informację do podłączonych klientów, że produkt został dodany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:49