Po węszyć wokół kodu trochę, tu jest przypuszczenie:
Poniższy pojemnik zgłoszenie jest zawsze w znacznikach Widok:
<div id="notify-container"> </div>
To pojemnik zgłoszenie jest domyślnie ukryty, a jest zapełniany przez javascript w pewnych okolicznościach. Może zawierać dowolną liczbę wiadomości.
Jeśli użytkownik nie jest zalogowany
Trwałość: Cookies są używane, aby śledzić, czy wiadomość jest wyświetlana lub nie.
stronie serwera wygenerowany kod w widoku: myślę stackoverflow pokazuje tylko jedną wiadomość, jeśli nie jesteś zalogowany Poniższy kod jest wstrzykiwana do widzenia.
<script type="text/javascript">
$(function() { notify.showFirstTime(); });
</script>
The showFirstTime() Metoda javascript określa, czy wyświetlić "Czy to Twój pierwszy raz tutaj?" wiadomość na podstawie tego, czy plik cookie został ustawiony, czy nie. Jeśli nie ma pliku cookie, pojawi się komunikat. Jeśli użytkownik podejmie działanie, plik cookie zostanie ustawiony, a komunikat nie będzie wyświetlany w przyszłości. Funkcja nofity.showFirstTime() obsługuje sprawdzanie plików cookie.
Jeśli użytkownik jest zalogowany
Trwałość: Baza danych jest używany, aby śledzić, czy wiadomość została pokazana czy nie.
stronie serwera wygenerowany kod w widoku: Gdy strona jest wymagany kod po stronie serwera sprawdza bazę danych, aby zobaczyć jakie komunikaty muszą być wyświetlane. Kod po stronie serwera wstrzykuje wiadomości w formacie json do widoku i umieszcza wywołanie javascript na showMessages().
Na przykład, jeśli jestem zalogowany do widoku, widzę następujące w znacznikach na SO:
<script type="text/javascript">
1
2 var msgArray = [{"id":49611,"messageTypeId":8,"text":"Welcome to Super User! Visit your \u003ca href=\"https://stackoverflow.com/users/00000?tab=accounts\"\u003eaccounts tab\u003c/a\u003e to associate with our other websites!","userId":00000,"showProfile":false}];
3 $(function() { notify.showMessages(msgArray); });
4
</script>
Więc kod po stronie serwera albo wstrzykuje kod nazywać „showFirstTime” metodę, jeśli użytkownik nie jest zalogowany lub wprowadza komunikaty i wywołuje "showMessages" dla zalogowanego użytkownika.
Więcej informacji na temat kodu po stronie klienta
Drugim elementem kluczowym jest „zawiadomić” JavaScript moduł Picflight uznano de-minified (można zrobić to samo przy użyciu YSlow dla Firebug). Moduł powiadomień obsługuje zapełnianie obszaru powiadomień na podstawie wygenerowanego po stronie serwera skryptu javascript.
Nie zalogowany, po stronie klienta
Jeśli użytkownik nie jest zalogowany, to moduł obsługuje zdarzenia, gdy użytkownik X OUT zawiadomienia lub idzie do FAQ tworząc cookie. Określa również, czy wyświetlić komunikat po raz pierwszy, sprawdzając plik cookie.
zalogowany, po stronie klienta
Jeśli użytkownik jest zalogowany, moduł zawiadomić dodaje wszystkie komunikaty generowane przez serwer do div powiadomień. Najprawdopodobniej używa ajax do aktualizacji bazy danych, gdy użytkownik odrzuci wiadomość.
Pamiętaj również, że możesz łatwo przeglądać ten kod za pomocą: -Firebug dla przeglądarki Firefox - Chrom - Kliknij prawym przyciskiem myszy, "sprawdź element" -IE - naciśnij klawisz f12, wybierz ikonę strzałki, kliknij element, aby sprawdzić –