Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP][MySQL]Aktualizacja informacji bez odświeżenia
patry6123
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


Witam,
jestem w trakcie pisania aplikacji i chciałbym się Was zapytać, o to jak najlepiej zrobić takie coś.

Mam pseudo giełdę polegającą na składaniu zleceń sprzedaży i zleceń kupna. Składam zlecenie kupna do tabeli zlecenia_kupna, o polach id_zk, id_zs, id_skladajacego, cena. W momencie gdy złoży ktoś zlecenie kupna, chcę aby albo dodało się zlecenie, jeśli go nie będzie, albo uaktualniło się to co jest obecnie, ale to jestem sam wstanie zrobić. Gorzej jest z aktualizacją strony bez przeładowania. Myślę, alby zrobić takie coś, że zapisuję w json-ie informację o obecnym stanie po otwarciu strony a następnie co jakiś czas (1 sekunda), wysyłać zapytanie czy nastąpiła jakaś zmiana. i ew. zmieniać to na stronie i w json-ie Teraz tylko pytanie jak to zrobić by nie zabić serwera, oraz czy może ktoś mi napisać funkcję odświeżającą?

Z góry dziękuję.
Jeśli ktoś ma jakiś lepszy pomysł to bardzo proszę.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
NickOver
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

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


Słowo klucz:
Ajax!
Nawet pogoglam za Ciebie: http://api.jquery.com/jquery.ajax/

Przed wysłaniem pobierasz informacje z pól formularza, wysyłasz request i odbierasz informacje.
Chyba że o co innego chodzi.
Go to the top of the page
+Quote Post
patry6123
post
Post #3





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


To, że nie padło słowo AJAX w mojej wypowiedzi, nie znaczy, że nie wiem co to jest. Tak naprawdę opisałem wszystko by nie było zbędnych pytań co gdzie jak. Chodzi mi jedynie o to by nie zabić serwera requestami co sekundę, ale zrobić aktualizację po zamianie. Czy jest jakaś prosta technologia, która będzie mi to aktualizować?

Pomoże ktoś?

Ten post edytował patry6123 5.02.2015, 00:19:46
Go to the top of the page
+Quote Post
aniolekx
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


jeżeli nie chcesz używać przycisku "Zapisz", to zrobił bym to z użyciem focus i keypress , to znaczy klient klika na pole i coś pisze i jeżeli od ostatniego naciśnięcia klawisza minęło więcej np niż 2 sec to wysyłam request do bazy.

Oczywiście warto by było gdzieś wyświetlić informacje ze zmiany są zapisywane, żeby użytkownik był tego świadomy.

Ten post edytował aniolekx 6.02.2015, 08:19:17
Go to the top of the page
+Quote Post
patry6123
post
Post #5





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


Też o tym myślałem, ale bardziej chodzi o to, że w bazie zostaną dokonane zmiany, które będę chciał wyświetlić w przeglądarce, bez odświeżania.
Go to the top of the page
+Quote Post
aniolekx
post
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

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


sorry to może nie zrozumiałem o co pytasz, czy masz na myśli "two way data binding"? Taki efekt jak np w Meteorze lub AngularJS?

Ten post edytował aniolekx 6.02.2015, 11:40:53
Go to the top of the page
+Quote Post
ShaggyAG
post
Post #7





Grupa: Zarejestrowani
Postów: 111
Pomógł: 11
Dołączył: 12.10.2014
Skąd: Tarnów

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


w tabeli dodaj pole z datą i czasem ostatniej modyfikacji które będziesz updatował z każdym razem przy jakichś zmianie updacie i ładujesz ten czas do cache.
Jak ładujesz stronę to zapisujesz gdzieś w js tan czas ostatniej modyfikacji. I wysyłasz go ajaxem co jakiś czas do serwera.
Jak data przesłana ajaxem starsza niż ta w cache robisz select jak nie, nie robisz nic.
Choć Ajax co 1s to chyba średnio dobry pomysł.
ale to teria, robiłem raz coś podobnego ale bez cache.


Go to the top of the page
+Quote Post
patry6123
post
Post #8





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


Ogólnie tak, ale nie chciał bym wchodzić w kolejne framework-i.


//Edit @up też o tym myślałem, i chyba tak zrobię, ale tylko po wejściu przez usera w pole.

Ten post edytował patry6123 6.02.2015, 11:45:34
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #9





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Jeśli bierzesz pod uwagę dużą liczbę klientów to ja bym proponował zrobić to na sockecie, tzn. serwer, który wykonuje zapytania w razie zmiany stanów, cachuje to sobie i zwraca podłączonym klientom. Lepiej wykonać 1 zapytanie i zwrócić je 1000 klientów, niż 1000 zapytań od 1000 klientów.

Coś jak chat, tyle że informacją wspólną dla wszystkich jest właśnie stan towarów na giełdzie.

W miarę możliwości zamiast łączenia wielu tabel (względnie korzystania z widoków) lepiej sobie machnąć tabelę, która trzyma wszystkie newralgiczne dane w jednym miejscu, tak by można je było szybko pobrać i zwrócić.

Ten post edytował b4rt3kk 6.02.2015, 12:26:48


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
patry6123
post
Post #10





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 4.12.2014

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


A możesz mi coś podesłać, jakiś artykuł, albo coś bo nawet nie wiem jak zadać pytanie do googla...
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #11





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Cytat(patry6123 @ 6.02.2015, 16:08:00 ) *
A możesz mi coś podesłać, jakiś artykuł, albo coś bo nawet nie wiem jak zadać pytanie do googla...


Tutaj masz całkiem przyjemny tutorial:
http://www.binarytides.com/php-socket-programming-tutorial/

Wystarczający żeby zapoznać się z tematem.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
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: 22.08.2025 - 03:30