![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
pracuję obecnie nad serwisem w którym dane muszą być aktualizowane bez akcji ze strony użytkownika w dodatku dość często i dla sporej liczby obiektów. Problem wygląda następująco: na stronie mam ok. 20 obiektów, które mają liczniki czasu (ważności). Licznik pokazuje czas jaki upływa do utraty ważności obiektu, i jest aktualizowany co sekundę. Nie byłoby problemu, gdyby licznik miał tylko sobie schodzić w dół, ale w wyniku akcji użytkownika licznik może zmienić wartość i odliczanie musi odbywać się wtedy od nowej wartości, w dodatku musi oczywiście zaktualizować się u wszystkich klientów. Sama funkcja js wygląda tak: Kod var $j = jQuery.noConflict(); $j(document).ready(function(){ down(".product ul[id]"); function down(grab){ var pid = $j(grab).attr("id"); $j(grab).everyTime(1000).each(function(i) { $j.ajax({ type: "GET", url: "/web/pl/ajax/product.php", data: "product_id="+pid, success: function(msg){ $j(grab).html(msg); }, error: function(msg){ alert("błąd!!!"); } }); }); } tak więc js odpytuje skrypt product.php co 1s dla każdego z produktów. Powoduje to niestety praktycznie "zabicie" przeglądarki i aż się boję pomyśleć co mogłoby się stać z serwerem przy ilości powiedzmy 1000 userów. Czy jest jakiś sposób aby serwer wysyłał dane do skryptu tylko w momencie jeśli licznik uległ zmianie innej niż domyślne odliczanie? Bo rozumiem, że przeglądarka i tak musi odpytać co 1s serwer - niezależnie od okoliczności. A może da się to rozwiązać wysyłając odpowiednie nagłówki? Z góry dziękuję za wskazówki. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 15 467 Pomógł: 1451 Dołączył: 25.04.2005 Skąd: Szczebrzeszyn/Rzeszów ![]() |
Hmm, może zwracaj nagłówek 304, jeśli niezmodyfikowane?
Ale i tak będzie to zajeżdżało serwer, poza tym - opóźnienia na łączach mogą zabić całą ideę skryptu, ja bym tu inaczej to rozwiązał. Przede wszystkim tak, aby wysyłane było tylko jedno zapytanie ze wszystkimi produktami, a nie tylko dla jednego z osobna. Albo chociaż zmniejszyć rozdzielczość licznika. |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
zakladam ze robisz cos ala podbij.pl
Odpytuj wiec co 1 sekunde serwer o wszystkie widoczne elementy a nie kazdy z osobna - taki robi podbij i jakos sie przegladarka nie zazyna. Wspomnial tez otym erix wyzej |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
tak serwis jest coś ala to (czego to klienci nie wymyśla a szef nie zgodzi się robić),
dzięki za odpowiedzi spróbuję tak to rozwiązać. Pozdrawiam |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 149 Pomógł: 12 Dołączył: 3.03.2008 Skąd: łódzkie Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio w słyszałem, że Ministerstwo Finansów coś się czepia takiej formy aukcji, że łamie jakieś zasady czy coś.
To Ci Platforma pro przedsiębiorcza jest dopiero (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No ale nic, nasze społeczeństwo takie, że na własnej skórze jak się nie przekona to nie zrozumie co wybrało... |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 30.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio w słyszałem, że Ministerstwo Finansów coś się czepia takiej formy aukcji, że łamie jakieś zasady czy coś. To Ci Platforma pro przedsiębiorcza jest dopiero (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) No ale nic, nasze społeczeństwo takie, że na własnej skórze jak się nie przekona to nie zrozumie co wybrało... serwis nie jest mój ani dla mnie, więc mnie to nie straszne (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) ja generalnie dłubię tylko w php ale na starość przyszło mi też z AJAXem spróbować się zaprzyjaźnić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.08.2025 - 04:05 |