W moim projekcie dostępne są funkcje, takie jak czat prywatny i powiadomienia o wiadomościach. Powiadomienie o wiadomości powiadamia, jeśli są jakieś nowe nieprzeczytane wiadomości.W jaki sposób klient pobiera aktualizacje z serwera bez częstych żądań ajax?
Dla osiągnięcia tego, pomysł, który przyszedł mi do głowy jest
Jak w
client
-server
modelu serwer powinien nasłuchiwać nowych żądań. Tak, pomyślałem, że powinien istnieć jakiś mechanizm do odsłuchiwania serwera w celu uzyskania informacji o nowych wiadomościach. Ponieważ znam ajax, użyłem żądaniaajax
z interwałem 2 sekund.
Żądania ajax podczas sprawdzania go w chrome będzie coś jak poniżej.
Ale myślałem, potem, że StackOverflow powinny stosować tę samą sztuczkę, czy to był tylko pomysł, aby to zrobić, ponieważ aktualizuje informację/głosować informacji asynchronicznie.
Sprawdzając ich żądania ajax w chrome, był całkowicie pusty.
Muszę wiedzieć, jak można to osiągnąć bez częstych żądań ajaxowych (co zwiększy obciążenie serwera).
Prosty przykład z najbardziej wydajną techniką byłby bardzo przydatny do nauki.
miałem konsoli programisty Chrome otwarte na chwilę teraz i nie widzę nic nowego w widoku sieci. Czy którakolwiek z tych opcji spowoduje coś innego, co zapobiegnie widoczności ruchu sieciowego w ten sposób? – Joel
@Joel Z linku podanego w odpowiedzi _ "Comet to model aplikacji internetowej, w którym długo przechowywane żądanie HTTP pozwala serwerowi przesłać dane do przeglądarki, bez wyraźnego zażądania przez przeglądarkę." _ Ponieważ Comet jest reverse ajax. Odpowiedź jest po stronie serwera, a nie inicjowana przez przeglądarkę (klienta). Zgaduję więc, że prośby nie będą wyświetlane w internetowej konsoli programisty. – Lucky
@Lucky: Nie do końca, jak to działa. Serwer nie może zainicjować żądania od klienta, bez uprzedniego kontaktu klienta z serwerem. – Amadan