2011-07-04 5 views
6

Potrzebujemy stworzyć interfejs WWW do wyświetlania niektórych danych. Problem polega na tym, że dane muszą być aktualizowane mniej więcej raz na sekundę. Dla mnie jako web-developera oczywistym rozwiązaniem jest AJAX. Niestety, jeden z celów tego interfejsu sieciowego ma być wyświetlany wewnątrz osadzonego okna przeglądarki, które powinno działać nieprzerwanie przez wiele miesięcy lub nawet lat. To wszystko, miesiące pracy bez restartu/odświeżenia. Podczas testów uruchomiliśmy interfejs sprawdzania koncepcji (który wymagał prostego zestawu danych po 1,5 s) w Safari przez ponad miesiąc. W tym okresie wykorzystanie pamięci Safari wzrosło z około 30 MB do ponad 100 MB. Dlatego obawiamy się stabilności takiego rozwiązania.Jakiej technologii użyć na stronie internetowej, która stale żąda danych z serwera?

Zastanawiam się, czy mógłbyś polecić nam jakąkolwiek inną technikę do tego zadania, prawdopodobnie z mniejszym narzutem (podczas żądania prostych zestawów danych - tak jak w naszym przypadku - obawiam się, że nagłówki HTTP są bardzo istotną częścią danych)

+0

pan spojrzał node.js? –

+0

Czy można napisać oddzielną aplikację, aby można było przetoczyć własny protokół sieciowy (np. Przy stałym połączeniu)? Nadal możesz używać webkita do renderowania, ale zyskasz większą kontrolę. –

+0

+1 za miłe pytanie – Predator

Odpowiedz

1

Sugerowałbym patrząc node.js i tym Wtyczka now.js, która pozwala na aktualizacje w czasie rzeczywistym za pośrednictwem stron internetowych. Ma nawet wsparcie dla starszych przeglądarek, więc jeśli przeglądarka nie obsługuje stron internetowych, przejdzie do implementacji serwera komety, AJAX lub iframe.

Jest bardzo łatwy w konfiguracji w środowisku Linux i istnieje wiele dokumentacji, aby zacząć.

Działa z javascript i działa na silniku javascript Google V8, więc jeśli kiedykolwiek pracowałeś z OOP Javascript, powinieneś być w stanie go pobrać stosunkowo łatwo.

LINKI:
http://nodejs.org/
http://nowjs.com/

0

Może websocket? Zamiast wysyłać żądanie AJAX co X sekund, serwer przesyła nowe dane w miarę ich pojawiania się.

0

Mój osobisty faverite to serwer php4 +, mysql, apache lub lightpd.

Trudno też sugeruję Python.

Specjalizuję się w tym, o czym wspomniałeś, mówiąc to, czy rzeczywiście będziesz patrzył na ekran? Jeśli nie, powinieneś poprosić o stronę za pomocą gniazda http lub poprzez cortę wget na pudełku Linux.

Tak, nagłówek http jest bardzo ważny, jeśli spróbujesz je rozebrać, serwer internetowy wyda błąd "Serwer - nieprawidłowe żądanie".

Daj mi znać co Ci zdecydować, mam dużo do dzielenia :)

0

Podejrzewam, że problem nie jest AJAX per se, ale przy użyciu przeglądarki an sich: Nie sądzę, gdziekolwiek się z ciągłe działanie i zakładam, że wszystkie (ponowne) ładowanie procesów stanie się w końcu pewną formą dodatkowej pamięci.

Myślę, że najlepiej będzie, jeśli wykorzystasz swoje dane za pomocą prostego projektu. Możesz oczywiście wyprodukować go w tym samym miejscu (serwer, który można zamówić przez HTTP lub cokolwiek lubisz najbardziej), ale nie potrzebujesz kompletnej przeglądarki, jeśli Twoim celem jest osiągnięcie "kilku lat bezawaryjnej pracy".

1

Co z Adobe AIR jako front-endem? Możesz używać Flash/FLEX w środku, które mają przyzwoite zbieracze śmieci, więc długotrwałe działanie nie powinno być problemem. AIR umożliwia również pisanie w XHTML i JavaScript, więc może być dobrym rozwiązaniem, jeśli znasz tylko te technologie.

PHP nie jest dobrym wyborem dla tego rodzaju wniosków. Comet wydaje się być dobrym sposobem odbierania danych z serwera. Możesz użyć na przykład znakomitego Tornado (Python) jako backendu.

ActionScript pozwala na użycie gniazd TCP, dzięki czemu można napisać swój własny protokół dla jeszcze lepszej wydajności i wykorzystanie asio rozkwit (C++) lub Netty (Java) jako skalowalną backend

+0

Osobiście jako osobistą preferencję chciałbym najpierw wypróbować środowisko AIR z JavaScriptem, a następnie Flash/FLEX. Ale w prawdziwym świecie rozwijałbym się zarówno jako dowód koncepcji, jak i testowałem każdy z nich. Jeśli chodzi o back-end, jeśli nie mogę bezpośrednio zbudować kontroli w środowisku AIR, zależy to od konkretnej aplikacji, bez komentarza na temat infrastruktury zaplecza. – Ryan