![]() |
![]() |
![]()
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:47 |