ASP.NET AJAX - Cykliczne odświeżanie - Timer
Autor: Piotr Bubacz
Opublikowano: 2012-03-01
Wiemy już, jak niezależnie aktualizować wybrany fragment strony internetowej oraz jak wyświetlić informacje o aktualizacji. Teraz nauczymy się, jak wymusić cykliczne odświeżanie strony lub wybranego jej fragmentu.
Przed wykonaniem zadań powinieneś wiedzieć:
- jak tworzyć strony internetowe w ASP.NET,
- jak aktualizować wybrany fragment strony internetowej za pomocą kontrolki UpdatePanel,
- jak wyświetlać powiadomienia o aktualizacji i umożliwić jej anulowanie.
Po wykonaniu zadań nauczysz się:
- automatycznie, cyklicznie aktualizować informacje na stronie.
Implementacja
Twoim zadaniem jest wykonanie strony internetowej, która będzie umożliwiała cykliczne aktualizowanie całej strony lub wybranego jej fragmentu.
Rys. 1. Strona z automatyczną aktualizacją.
Przygotowanie strony
- Utwórz aplikację internetową:
- otwórz Visual Studio, wybierz File ‑>** New** ‑>** Web Site -> Empty Web Site**,
- kliknij OK,
- w oknie Solution Explorer kliknij prawym przyciskiem myszy na Web Site -> Add New Item -> Web Form,
- kliknij OK.
- Dodaj kontrolki ASP.NET AJAX:
- do strony dodaj kontrolki ScriptManager i UpdatePanel, przeciągając je myszą z okna Toolbox (kategoria AJAX Extensions).
- Dodaj kontrolki umożliwiające wyświetlenie aktualnego czasu. Jedną umieść w UpdatePanel, a druga poza tą kontrolką:
- w kontrolce UpdatePanel umieść kontrolkę Label i w oknie Properties:
— w polu ID wpisz lbl1,
— w polu Text usuń zawartość. - poza kontrolką UpdatePanel umieść kontrolkę Label i w oknie Properties:
— w polu ID wpisz lbl2,
— w polu Text usuń zawartość. - Do metody Page_Load dodaj następujący kod wyświetlający czas uruchomienia formularza w kontrolce lbl2:
lbl1.Text = DateTime.Now.ToLongTimeString();
lbl2.Text = DateTime.Now.ToLongTimeString();
- Sprawdź działanie aplikacji:
- zapisz zmiany i uruchom formularz,
- sprawdź, czy strona wygląda tak, jak na Rys. 1.
Cykliczna aktualizacja fragmentu strony
Do cyklicznej aktualizacji wybranego fragmentu strony możemy wykorzystać kontrolkę Timer.
- Do kontrolki UpdatePanel dodaj kontrolkę Timer:
- do kontrolki UpdatePanel dodaj kontrolkę Timer:
— w polu ID wpisz tim1,
— w polu Interval wpisz 5000.
- Sprawdź działanie aplikacji:
- zapisz zmiany i uruchom formularz. Poczekaj 5 sekund.
Cykliczna aktualizacja całej strony
Do cyklicznej aktualizacji strony możemy również wykorzystać kontrolkę Timer.
- Poza kontrolką UpdatePanel dodaj kontrolkę Timer:
- poza kontrolką UpdatePanel dodaj kontrolkę Timer:
— w polu ID wpisz tim2,
— w polu Interval wpisz 10000.
- Sprawdź działanie aplikacji:
- zapisz zmiany i uruchom formularz. Poczekaj 10 sekund.
Informacja |
KontrolkaTimer odpowiada za wymuszenie komunikacji zwrotnej do serwera w określonych odstępach czasu. Możliwe jest aktualizowanie całej strony lub jej części, ujętej w kontrolce UpdatePanel. Właściwość Interval określa czas w milisekundach, po którym nastąpi komunikacja zwrotna do serwera. |
Podsumowanie
W tym artykule nauczyliśmy się cyklicznie aktualizować informacje zawarte na stronie internetowej.
W kolejnym artykule nauczymy się podstaw ASP.NET AJAX Control Toolkit.
Zadanie
W celu sprawdzenia swoich umiejętności, spróbuj rozszerzyć stronę o wyświetlenie informacji o aktualizacji w postaci animowanego obrazka oraz dodać możliwości anulowania aktualizacji (Rys. 2.).
Rys. 2. Wynik zadania.
- wykorzystaj to, co zostało zrobione w zadaniu pierwszym,
- znajdź animowanego gifa (np. na stronie http://www.ajaxload.info) i dodaj go w odpowiednim miejscu,
- umieść przycisk i kod w JavaScript z poprzedniego zadania,
- dodaj opóźnienie wyświetlania wyników.
- znajdź animowanego gifa (np. na stronie http://www.ajaxload.info ),
- do strony dodaj kontrolkę UpdateProgress i umieść w niej obrazek,
- umieść przycisk i kod w JavaScript z odcinka Informacja o aktualizacji - UpdateProgres,
- w metodzie Page_Load dodaj:
System.Threading.Thread.Sleep(3000);
- zapisz wszystkie pliki i uruchom ponownie aplikację.