Zebrałem czat AJAX A podczas tyłu ASP.NET MVC i jQuery. JavaScript uderzyłby na serwer około każdej 7 sekund, aby sprawdzić nowe wiadomości. Oczywiście było to okropne na wydajności, ponieważ czat wzrósł i obejmował coraz więcej użytkowników. Ruch witryny stał się wykładniczo z tak wielu prośbami. Użytkownik mógł opuścić komputer przez cały dzień i nawet nie być tam i nadal będą robić trafienia co 7 sekund.

Czy jest lepszy sposób na to? Słyszałem o czymś o nazwie "Push", ale naprawdę nie byłem w stanie owinąć moją głowę. Myślę, że muszę tylko wskazał we właściwym kierunku.

1.) Jaki jest najlepszy sposób na rozwój czatu Ajax i jest to skalowalne?

2.) Co to jest pchnięcie i jak by mógłby po prostu z jQuery?

4
Chev 18 październik 2011, 00:36

4 odpowiedzi

Najlepsza odpowiedź

1.) Jaki jest najlepszy sposób na rozwój czatu Ajax i jest to skalowalne?

Zgadzam się z @fakish o złożoności i potencjalnym braku skalowania IIS.

Istnieje jednak stosunkowo nowa opcja Microsoft w pracach o nazwie Signalr, który może stać się podstawową częścią ASP .NETTO. Więcej szczegółów w tej związanej z tym pytanie:

2.) Co to jest pchnięcie i jak by mógłby po prostu z jQuery?

Częściowo odpowiedziało gdzie indziej, ale jest to długotrwałe trwałe połączenie między serwerem a klientem, co oznacza, że serwer może natychmiast "popychać" dane do klienta, gdy ma nowe dostępne dane.

JQuery obsługuje żądania AJAX, ale biblioteka rdzeniowa nie obsługuje narażania sposobów wykonania długiego odpytywania lub strumieniowego HTTP. Więcej informacji w tym Więc odpowiedz na "Long Bling / HTTP Streaming Ogólne pytania".

1
Community 23 maj 2017, 12:03

Serwer naciśnij jest technologią, która umożliwia serwer naciskać dane z powrotem do klienta bez zmuszania klienta Wiele próśb (jak co 7 sekund). To nie jest taka kwestia javascript, ale raczej dobre skrypty serwera. Nadchodzący HTML5 sprawi, że jest to proste z powodu Server-Wysłane zdarzenia i / lub WebSockets. Będzie to prawdziwe połączenie TCP między różnymi maszynami.

Ale jeśli zamierzasz wykonać stronę internetową kompatybilną ze starszymi przeglądarkami, najczęstszą techniką jest długi głosowanie. Klient wysyła żądanie na serwer, a serwer nie odpowiada na niego, dopóki nie ma nowych danych. Jeśli tak, odpowiedź zostanie wykonana i klient natychmiast po otrzymaniu danych wywołuje serwer z nowym żądaniem. W praktyce, wymaga jednak, aby serwer był dobrze napisany (na przykład musi utrzymywać tysiące żądań bezczynnych) i może stać się raczej dużym wyzwaniem dla deweloperów.

Mam nadzieję, że to pomoże. :) Powodzenia!

1
freakish 17 październik 2011, 21:11

Technika, której powinieneś użyć, jest trwałe długie połączenia w czasie rzeczywistym na stronie internetowej za pomocą baz danych. Możesz użyć tego biblioteki.

1
Haythem Tlili 18 październik 2011, 12:24

Węzeł Ale to byłoby coś zupełnie nowego.

Kolejnym ładnym potencjałem byłoby użycie MVC's UpływuEattribute i użycie opcji zależności SQL, więc strona AJAX może być buforowana i będzie tylko nową prośbą, gdy pojawi się nowa wiadomość czatu. Chciałbyś również, aby Twój kontroler był asynchroniczny kontroler, który pomoże zmniejszyć obciążenie IIS.

Cieszyć się, optymalizacja jest zawsze zabawna i bardzo czasochłonna!

0
endyourif 17 październik 2011, 20:56