Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Aktualizacja danych
Largo
post
Post #1





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witam,

Od pewnego czasu zastanawiam się nad pewną techniką. Otóż rozwijam dosyć zaawansowany system transakcyjny i tak się zastanawiam nad pewną funkcjonalnością, która się naprawdę podoba moim użytkownikom. Otóż na każdej stronie znajduje się dla zalogowanych użytkowników informacja o ich kwocie. I oni narzekają czasem, że przebywając na Shoutbox nie widzą zmieniającej się kwoty i nie wiedzą czy ich kontrahent wpłacił gotówkę czy też nie.

I tu mi wpadł do głowy ten pomysł, tylko zupełnie nie wiem jak podejść do tego tematu. Nie ma sensu przecież wywoływać Ajax co X czasu i sprawdzać takie dane zapytaniami, w końcu to by zrujnowało stronę. Chyba, że istnieje jakiś prosty sposób, który temu zapobiega. Liczę na Waszą pomoc!

Pozdrawiam,
Largo
Go to the top of the page
+Quote Post
karolrynio
post
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 25
Dołączył: 2.02.2009

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


Gdzieś czytałem o takiej technice, ale to działa po stronie serwera na takiej zasadzie:
Wywołujesz zapytanie ajax i teraz po stronie serwera sprawdzasz czy zmieniły się dane zatrzymujesz na kilka sekund i znowu sprawdzasz dopóki dane się nie zmienią. Jak się zmienią to wysyłasz wynik do użytkownika, on odbiera to wyświetla i ponownie wysyła zapytanie.
Go to the top of the page
+Quote Post
Largo
post
Post #3





Grupa: Zarejestrowani
Postów: 203
Pomógł: 6
Dołączył: 11.09.2005

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


Witaj,

Oficjalnie korzystam z biblioteki Prototype i w dokumentacji znalazłem ciekawą klasę, Ajax.PeriodicalUpdater. Oto mój kod:

[JAVASCRIPT] pobierz, plaintext
  1. <script type='text/javascript'>
  2. var frequencyRate = parseInt( 10 );
  3.  
  4. new Ajax.PeriodicalUpdater( 'forumGoldAmount', ipb.vars['base_url'] + 'app=fg&module=ajax&section=account&secure_key=' + ipb.vars['secure_hash'] + '&do=getUserAmount',
  5. {
  6. method: 'get',
  7. frequency: frequencyRate,
  8. }
  9. );
  10. </script>
[JAVASCRIPT] pobierz, plaintext


I wg. dokumentacji sam Prototype sprawdza czy dana treść została zmieniona, dzięki parametrowi decay, którego nie używam. Zadanie jest proste - skrypt ma sprawdzać co ok. 10 sekund czy zmieniła się kwota użytkownika, która jest obiektem. Więc aktualizacja transakcji oznacza aktualizację samego obiektu użytkownika. To ma działać tylko dla aktualnie zalogowanego! Czy to rozwiązanie optymalne?

Pozdrawiam,
Largo
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




No ale przeciez PeriodicalUpdater() jest dokladnie tym samym co mowiles w pierwszym poscie: co x czasu leci żądanie ajaxem na serwer i odpytanie serwera (bazy) o kwotę. Jedyną różnicą jest decay, które "inteligentnie" roznicuje czas odpytywania.

Cytat
. Więc aktualizacja transakcji oznacza aktualizację samego obiektu użytkownika
A gdzie ty przechowujesz ten obiekt uzytkownika?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 05:24