![]() |
![]() |
![]()
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ę. |
|
|
![]() |
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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 |
|
|
![]()
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. |
|
|
![]()
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 |
|
|
![]()
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.
|
|
|
![]()
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...
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 933 Pomógł: 460 Dołączył: 2.04.2010 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:30 |