Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00454 014115 11053933 na godz. na dobę w sumie
ASP. Kompendium programisty - książka
ASP. Kompendium programisty - książka
Autor: Liczba stron: 704
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-574-0 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> asp
Porównaj ceny (książka, ebook, audiobook).
ASP (Active Server Pages) dostarcza twórcom stron WWW środki do uruchamiania witryn z dynamiczną zawartością, sterowaną bazą danych. Kod, który tworzy tę bogatą zawartość, znajduje się w całości po stronie serwera, to znaczy, że jest na nim uruchamiany. Korzyścią płynącą z tworzenia skryptów po stronie serwera jest fakt, że wynikiem końcowym jest czysty HTML. Nie musisz martwić się o to, czy sprzęt odwiedzającego Twoją stronę będzie zgodny z językiem lub narzędziami, których używasz. Kolejną zaletą tworzenia skryptów po stronie serwera jest możliwość korzystania ze składników serwera bez konieczności instalacji poszczególnych programów po stronie użytkownika.

Książka ta szczegółowo prezentuje wszystkie składniki potrzebne do pracy z ASP. Po pierwsze, zdobędziemy informacje o modelu obiektu ASP. Następnie przyjrzymy się licznym składnikom potrzebnym podczas pracy z aplikacjami ASP. Później nauczymy się pracy z bazą danych oraz tworzenia składników. W końcu, w trzech ostatnich rozdziałach, użyjemy wszystkich narzędzi do stworzenia witryny WWW.

Książka została napisana w taki sposób, aby zaspokoić potrzeby zarówno tych Czytelników, którzy poznają ASP, tych, którzy są już z tą techniką zaznajomieni, jak również dla osób programujących w Visual Basicu.

Tym, którzy już są obeznani z ASP, książka ta zapewni przegląd wszystkich używanych składników, dzięki którym upewnią się, czy pamiętają wszystkie podstawowe zasady.

Dla twórców WWW książka będzie narzędziem pomagającym zrozumieć sposoby uruchamiania witryny. Zdobędą szeroką wiedzę na temat dodawania elementów dynamicznych do witryny WWW.

Osoby programujące w Visual Basicu, które chcą poszerzyć swoje horyzonty, nie zawiodą się na ASP. Ich umiejętności związane z Visual Basicem przydadzą się ponadto przy poznawaniu nowego środowiska programistycznego.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl ASP. Kompendium programisty Autor: Greg Buczek T³umaczenie: Jacek Banaszkiewicz, Pawe³ Koronkiewicz ISBN: 83-7197-574-0 Tytu³ orygina³u: ASP Developer s Guide Format: B5, stron: 700 Przyk³ady na ftp: 94 kB ASP (Active Server Pages) dostarcza twórcom stron WWW ġrodki do uruchamiania witryn z dynamiczn¹ zawartoġci¹, sterowan¹ baz¹ danych. Kod, który tworzy tê bogat¹ zawartoġæ, znajduje siê w ca³oġci po stronie serwera, to znaczy, ¿e jest na nim uruchamiany. Korzyġci¹ p³yn¹c¹ z tworzenia skryptów po stronie serwera jest fakt, ¿e wynikiem koñcowym jest czysty HTML. Nie musisz martwiæ siê o to, czy sprzêt odwiedzaj¹cego Twoj¹ stronê bêdzie zgodny z jêzykiem lub narzêdziami, których u¿ywasz. Kolejn¹ zalet¹ tworzenia skryptów po stronie serwera jest mo¿liwoġæ korzystania ze sk³adników serwera bez koniecznoġci instalacji poszczególnych programów po stronie u¿ytkownika. Ksi¹¿ka ta szczegó³owo prezentuje wszystkie sk³adniki potrzebne do pracy z ASP. Po pierwsze, zdobêdziemy informacje o modelu obiektu ASP. Nastêpnie przyjrzymy siê licznym sk³adnikom potrzebnym podczas pracy z aplikacjami ASP. Póĥniej nauczymy siê pracy z baz¹ danych oraz tworzenia sk³adników. W koñcu, w trzech ostatnich rozdzia³ach, u¿yjemy wszystkich narzêdzi do stworzenia witryny WWW. Ksi¹¿ka zosta³a napisana w taki sposób, aby zaspokoiæ potrzeby zarówno tych Czytelników, którzy poznaj¹ ASP, tych, którzy s¹ ju¿ z t¹ technik¹ zaznajomieni, jak równie¿ dla osób programuj¹cych w Visual Basicu. Tym, którzy ju¿ s¹ obeznani z ASP, ksi¹¿ka ta zapewni przegl¹d wszystkich u¿ywanych sk³adników, dziêki którym upewni¹ siê, czy pamiêtaj¹ wszystkie podstawowe zasady. Dla twórców WWW ksi¹¿ka bêdzie narzêdziem pomagaj¹cym zrozumieæ sposoby uruchamiania witryny. Zdobêd¹ szerok¹ wiedzê na temat dodawania elementów dynamicznych do witryny WWW. Osoby programuj¹ce w Visual Basicu, które chc¹ poszerzyæ swoje horyzonty, nie zawiod¹ siê na ASP. Ich umiejêtnoġci zwi¹zane z Visual Basicem przydadz¹ siê ponadto przy poznawaniu nowego ġrodowiska programistycznego. Spis treści Rozdział 1. Rozdział 2. Rozdział 3. O Autorze ............................................................................................................................................................9 Przedmowa.........................................................................................................................................................11 Tworzenie dynamicznych aplikacji internetowych........................................................................ 13 Czym była sieć WWW...................................................i...................................................i13 Zawartość statyczna a zawartość dynamiczna ...................................................i...............16 Skrypty wykonywane po stronie klienta i po stronie serwera...........................................18 Elementy dynamicznych rozwiązań internetowych ...................................................i.......25 Nie tylko serwer IIS i system Windows NT ...................................................i..................39 Serwer IIS z perspektywy twórcy stron www.................................................................................41 Czym jest IIS? ...................................................i...................................................i.............41 Otrzymywanie kopii IIS ...................................................i.................................................42 Konsola zarządzania...................................................i...................................................i....42 Właściwości usług WWW ...................................................i.............................................44 Witryny WWW na serwerze IIS ...................................................i....................................52 Dodawanie witryny WWW...................................................i............................................54 Właściwości witryny WWW...................................................i..........................................57 Eksploracja witryny...................................................i...................................................i.....60 Aplikacje ASP ...................................................i...................................................i.............63 Witryny FTP...................................................i...................................................i................69 Narzędzia pracy.............................................................................................................................................73 Przegląd aplikacji do tworzenia stron WWW ...................................................i................73 Notatnik...................................................i...................................................i.......................73 FrontPage 2000 ...................................................i...................................................i...........75 NetObjects Fusion ...................................................i...................................................i.......88 NetObjects ScriptBuilder ...................................................i...............................................95 Microsoft Visual InterDev 6.0 ...................................................i.....................................110 Ostatnie słowo o narzędziach...................................................i.......................................112 6 Rozdział 4. Rozdział 5. Rozdział 6. Rozdział 7. Rozdział 8. Rozdział 9. Rozdział 10. ASP. Kompendium programisty Podstawy ASP............................................................................................................................................... 113 Konstrukcja kodu ASP ...................................................i.................................................113 Skrypt w skrypcie...................................................i...................................................i......118 Zastosowanie kodu ASP.................................................i.................................................125 Obiekt Request .............................................................................................................................................165 Hierarchie i model obiektowy ASP...................................................i..............................165 Odbieranie informacji od odwiedzającego...................................................i...................169 Właściwość obiektu Request...................................................i........................................180 Metoda obiektu Request...................................................i...............................................181 Obiekt Request w działaniu...................................................i..........................................182 Obiekt Response..........................................................................................................................................199 Wysyłanie informacji do gości...................................................i.....................................199 Zbiór obiektu Response...................................................i................................................200 Właściwości obiektu Response ...................................................i....................................203 Metody obiektu Response ...................................................i............................................212 Obiekt Response w działaniu ...................................................i.......................................219 Obiekt Server................................................................................................................................................ 233 Wejście na szczyt ...................................................i...................................................i......233 Właściwość obiektu Server ...................................................i..........................................233 Metody obiektu Server ...................................................i.................................................236 Obiekt Server w działaniu ...................................................i............................................244 Obiekt Session, obiekt Application oraz plik global.asa .............................................................253 Aplikacje ASP ...................................................i...................................................i...........253 Tworzenie aplikacji ASP...................................................i..............................................254 Obiekt Session...................................................i...................................................i...........256 Obiekt Application ...................................................i...................................................i....269 Plik global.asa ...................................................i...................................................i...........276 Aplikacje ASP w użyciu ...................................................i..............................................286 Obiekty CDO dla Windows NT Server ..........................................................................................289 Uzupełnienie strony ASP o funkcję wysyłania wiadomości e-mail ...............................289 Obiekt NewMail...................................................i...................................................i........290 Zastosowanie obiektu NewMail...................................................i...................................308 Składniki ASP ............................................................................................................................................... 311 Obiekty zwiększające możliwości stron ASP ...................................................i..............311 Składnik Browser Capabilities ...................................................i.....................................312 Składnik Ad Rotator...................................................i...................................................i..319 Składnik Page Counter ...................................................i.................................................327 Składnik Counters ...................................................i...................................................i.....335 Składnik Content Linking ...................................................i............................................339 Składnik Content Rotator ...................................................i.............................................347 Składnik MyInfo ...................................................i...................................................i.......352 Rozdział 11. Obiekty Skryptowe ...................................................................................................................................355 Dodatkowe składniki VBScriptu...................................................i..................................355 Związek pomiędzy obiektami systemu plików ...................................................i............355 Obiekt FileSystemObject ...................................................i.............................................357 Spis treści 7 Zbiór Drives ...................................................i...................................................i..............378 Obiekt Drive...................................................i...................................................i..............379 Zbiór Folders ...................................................i...................................................i.............383 Obiekt Folder.......................................i...................................................i.........................385 Zbiór Files ...................................................i...................................................i.................389 Obiekt File...................................................i...................................................i.................390 Obiekt TextStream ...................................................i...................................................i....395 Obiekt Dictionary...................................................i...................................................i......398 Rozdział 12. Obsługa błędów i Script Debugger..................................................................................................... 403 Obsługa błędów...................................................i...................................................i.........403 Script Debugger...................................................i...................................................i.........416 Rozdział 13. SQL, SQL Server i Access......................................................................................................................423 Zaplecze aplikacji ASP ...................................................i................................................423 SQL ...................................................i...................................................i...........................423 Praca z serwerem SQL w aplikacjach ASP...................................................i..................436 Praca z programem Microsoft Access w aplikacjach ASP .............................................445 Rozdział 14. ADO..................................................................................................................................................................459 Obiekty danych ActiveX...................................................i..............................................459 Rozdział 15. Tworzenie aktywnych składników stron......................................................................................... 507 Tworzenie własnych bibliotek w języku Visual Basic...................................................i.507 Rozdział 16. ASP w praktyce — katalog produktów ...........................................................................................541 ASP w praktyce...................................................i...................................................i.........541 Witryna katalogu produktów...................................................i........................................542 Baza danych katalogu produktów ...................................................i................................553 Aplikacja ASP ...................................................i...................................................i...........561 Rozdział 17. ASP w praktyce — koszyk................................................................................................................... 589 Koszyk...................................................i...................................................i.......................589 Baza danych koszyka ...................................................i...................................................i597 Aplikacja ASP ...................................................i...................................................i...........602 Rozdział 18. ASP w praktyce — klienci.................................................................................................................... 619 Praca z klientami ...................................................i...................................................i.......619 Baza danych modułu obsługi klienta ...................................................i...........................627 Aplikacja ASP ...................................................i...................................................i...........630 Dodatek A VBScript — leksykon podręczny.........................................................................................................651 Skorowidz....................................................................................................................................................... 675 Składniki ASP Obiekty zwiększające możliwości stron ASP Serwer IIS posiada rozmaite składniki, które wspierają proces tworzenia stron ASP. Jeden z nich, obiekt CDO, poznaliśmy w poprzednim rozdziale. IIS posiada również zbiór mniejszych składni- ków, z których możesz skorzystać w kodzie podczas realizacji różnego rodzaju zadań. W rozdziale tym skoncentrujemy się na tych pomniejszych składnikach. Tabela 10.1 prezentuje je oraz poka- zuje, gdzie można je wykorzystać. Tabela 10.1. Składniki ASP Składnik $TQYUGT CRCDKNKVKGU #F4QVCVQT 2CIG QWPVGT QWPVGTU QPVGPV.KPMKPI QPVGPV4QVCVQT /[+PHQ Przeznaczenie Dostarcza informacje o używanej przez gościa przeglądarce oraz o jej możliwościach. Dostarcza metody pozwalające na łatwe zarządzanie bianerami reklamowymi w witrynie. Pozwala na wyświetlanie i śledzenie liczby gości stirony. Dostarcza mechanizmy pozwalające na obsługę liczby, iktóra ma być inkrementowana poprzez aplikację ASP. Pozwala na stworzenie serii stron zorganizowanych nia kształt książki i zapewnia możliwość poruszania się po tych stronach. Pozwala na włączenie do strony lub do jej elementówi zawartości losowej. Dostarcza obiekt wraz z licznymi właściwościami, ktiórych możesz użyć w celu zapamiętania informacji o Tobie i Twojej firmie. 312 ASP. Kompendium programisty Składnik Browser Capabilities Składnik Browser Capabilities dostarcza informacje o przeglądarce gościa oraz o systemie, którym dysponuje. Poniżej zaprezentowano proste wywołanie teigo składnika: UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG $TQYUGT$ $TQYUGT$ 8GTUKQP (TCOGU5WRRQTV$ (TCOGU 2NCVHQTO$ 2NCVHQTO Instancja składnika $TQYUGT CRCDKNKVKGU jest tworzona przy użyciu metody TGCVG1DLGEV: UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG Wywołanie tworzy instancję klasy $TQYUGT6[RG serwera /59 i wpisuje ją do zmiennej obiek- towej $ . Po wywołaniu, w zmiennej $TQYUGT ustawiana jest nazwa i wersja przeglądarki uży- wanej przez gościa: $TQYUGT$ $TQYUGT$ 8GTUKQP W zmiennej (TCOGU5WRRQTV ustawiana jest wartość informująca o tym, czy przeglądarika gościa obsługuje ramki: (TCOGU5WRRQTV$ (TCOGU Dodatkowo w zmiennej 2NCVHQTO zapisywana jest nazwa systemu operacyjnego gościa. Wyko- rzystywana jest właściwość 2NCVHQTO obiektu $TQYUGT CRCDKNKVKGU: 2NCVHQTO$ 2NCVHQTO Składnik $TQYUGT CRCDKNKVKGU działa w bardzo prosty sposób. Wyszukuje zmienną nagłówka HTPP o nazwie 7UGT#IGPV, która zawiera nieco skomplikowany wiersz z informacjami o gościu. Wyszukana wartość jest następnie sprawdzana w pliku .ini o nazwie browscap.ini, który jest plikiem tekstowym, zawierającym informacje o konfiguracji wielu systemów operacyjnych i przeglądarek. Plik browscap.ini musi znajdować się w tym samym katalogu, co plik biblioteki składnika browscap.dll. Dla Internet Explorera w systemie Windows NT zawartość nagłówka 7UGT#IGPV może wy- glądać tak: /QKNNC EQORCVKDNG/5+ 9KPFQYU06 Składnik przegląda plik browscap.ini w poszukiwaniu zapisu: =/QKNNC EQORCVKDNG/5+ 9KPFQYU06 ? Poniżej znajduje się informacja o konfiguracji systemoweij: RCTGPV+  OKPQTXGT RNCVHQTO9KP06 Zwróć uwagę na pierwszy wiersz określający przodka (parent). Informuje on o obecności w pliku browscap.ini pozycji o nazwie IE 4.0. Biblioteka użyje zapisanych tutaj informacji, a w przypadku braku którejś z nich, użyje wartości zapisanych w przodiku tego typu. Rozdział 10. G Składniki ASP 313 W katalogu nadrzędnym zapisana zostanie konfiguracja dla tiego systemu: DTQYUGT+ 8GTUKQP OCLQTXGT OKPQTXGT HTCOGU647 VCDNGU647 EQQMKGU647 DCEMITQWPFUQWPFU647 XDUETKRV647 LCXCUETKRV647 LCXCCRRNGVU647 #EVKXG: QPVTQNU647 9KP(CNUG DGVC(CNUG #-(CNUG 5-(CNUG #1.(CNUG ETCYNGT(CNUG (6TWG W przypadku przeglądarki Netscape Navigator w systemie Windiows 95 nagłówek zwróci wartość: /QKNNC  9KP7 Składnik $TQYUGT CRCDKNKVKGU będzie szukał tej wartości w pliku browscap.ini i znajdzie zapis: RCTGPV0GVUECRG RNCVHQTO9KP Zauważ, że w pozycji przodka znajduje się teraz nazwa Netscape 4.0. Składnik poszuka tej wartości dla innych właściwości i znajdzie następujące piozycje: DTQYUGT0GVUECRG XGTUKQP OCLQTXGT OKPQTXGT HTCOGU647 VCDNGU647 EQQMKGU647 DCEMITQWPFUQWPFU(#.5 XDUETKRV(#.5 LCXCUETKRV647 LCXCCRRNGVU647 #EVKXG: QPVTQNU(#.5 DGVC(CNUG Przy pisaniu kodu można użyć składnika $TQYUGT CRCDKNKVKGU, który określa możliwości systemu gościa. Oto przykładowy kod:  1RVKQP ZRNKEKV KO$ UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG 4GURQPUG9TKVG2TGINæFCTMC$ $TQYUGT$ 8GTDUKQP$4  4GURQPUG9TKVG2NCVHQTOC$ 2NCVHQTO$4  4GURQPUG9TKVG *6/.$ FJVON$4  4GURQPUG9TKVG4COMK$ HTCOGU2  314 ASP. Kompendium programisty 4GURQPUG9TKVG6CDGNG$ VCDNGU$4  4GURQPUG9TKVG QQMKGU$ EQQMKGU$4  4GURQPUG9TKVG ļYKúMKVđC$ DCEMITQWPFUQWPFU$4  4GURQPUG9TKVG8$5ETKRV$ XDUETKRV2  4GURQPUG9TKVG,CXC5ETKRV$ LCXCUETKRV$4  4GURQPUG9TKVG#RNGV[,CXC$ LCXCCRRNGVU$4  4GURQPUG9TKVG1DKGMV[UVGTWLæEG#EVKXG:$ CEVKXGZEDQPVTQNU$4  4GURQPUG9TKVG#1.$ #1.2  4GURQPUG9TKVG$GVC$ $GVC$4  4GURQPUG9TKVG ($ EFH  Na wstępie zaznaczamy, że deklarowane będą zmienne: 1RVKQP ZRNKEKV Następnie tworzymy zmienną o nazwie $ : KO$ W zmiennej $ tworzona jest kopia składnika $TQYUGT CRCDKNKVKGU: UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG Do przeglądarki wysyłana jest nazwa i wersja przeglądariki gościa: 4GURQPUG9TKVG2TGINæFCTMC$ $TQYUGT$ 8GTDUKQP$4  Dalej do przeglądarki przesyłana jest nazwa systemu opeiracyjnego gościa: 4GURQPUG9TKVG2NCVHQTOC$ 2NCVHQTO$4  Teraz do przeglądarki wysyłąna jest informacja o tym, czy przeglądarka obsługuje dynamiczny HTML. Możliwe dla tej właściwości wartości to: prawda (6TWG), fałsz ((CNUG) oraz nieznany (7PMPQYP): 4GURQPUG9TKVG *6/.$ FJVON$4  Następny fragment odpowiada na pytanie, czy przeglądarka obsługuje ramki. Możliwe wartości dla tej właściwości to: 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG4COMK$ HTCOGU2  Składnik $TQYUGT CRCDKNKVKGU informuje o tym, czy przeglądarka wyświetla tabele. Możliwe wartości to: 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG6CDGNG$ VCDNGU$4  Czy przeglądarka gościa obsługuje znaczniki cookie? Możliwe wartości dla tej właściwości to: 6TWG, (CNUG i 7PMPQYP. Przeglądarka może obsługiwać cookies, ale gość może dysponować na- rzędziem blokującym te znaczniki: 4GURQPUG9TKVG QQMKGU$ EQQMKGU$4  Czy przeglądarka potrafi odtwarzać dźwięki tła? Możliwe wartości dla tej właściwości to: 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG ļYKúMKVđC$ DCEMITQWPFUQWPFU$4 D Rozdział 10. G Składniki ASP 315 Czy przeglądarka potrafi przetwarzać VBScript po stronie klienta? Zwróć uwagę na to, że mówimy tutaj o stronie klienta, co nie ma nic wspólnego ze stronami ASP, które są przetwa- rzane przez Twój serwer. Możliwe wartości dla tej właściiwości to: 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG8$5ETKRV$ XDUETKRV2  To samo pytanie dotyczy JavaScriptu. Ponownie odnosimy się do możliwości po stronie klienta. Możliwe wartości dla tej właściwości to 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG,CXC5ETKRV$ LCXCUETKRV$4  Czy przeglądarka obsługuje aplety Javy? Odpowiedź na to pytanie zawarta jest we właściwości ,CXC#RRNGVU składnika $TQYUGT CRCDKNKVKGU: 4GURQPUG9TKVG#RNGV[,CX[$ LCXCCRRNGVU$4  Czy przeglądarka może współpracować ze składnikami ActiveX po stronie klienta? Możliwe wartości dla tej właściwości to 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG1DKGMV[UVGTWLæEG#EVKXG:$ CEVKXGZEQPVTQNU$4  Czy gość używa AOL? Możliwe wartości dla tej właściwości to 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG#1.$ #1.2  Czy przeglądarka jest w wersji beta? Możliwe wartości dlai tej właściwości to 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG$GVC$ $GVC$4  I wreszcie, czy przeglądarka obsługuje format CDF? Możliwe wartości dla tej właściwości to 6TWG, (CNUG i 7PMPQYP: 4GURQPUG9TKVG ($ EFH Rysunek 10.1. przedstawia wygląd tej strony w systemie Windows 98 używającym przeglądarki Netscape Navigator 4.0. Rysunek 10.2 prezentuje rezultat działania kodu w systemie Windows NT z uruchomionym Internet Explorerem 5.0. Najważniejszą możliwością wykorzystania tego kodu jest kierowanie gości do właściwej wersji Twojej witryny WWW. Może ona zawierać witrynę optymalizowaną dla Internet Explorera, drugą dla Netscape Navigatora, trzecią dla WebTV i kolejną dla pozo- stałych typów przeglądarek. Możesz to zrobić, wykorzystująic kod, taki jak ten:  1RVKQP ZRNKEKV KO$ UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG +H$ $TQYUGT+ VJGP 4GURQPUGTGFKTGEV+ KPFGZCUR NUG+H$ $TQYUGT0GVUECRGVJGP 4GURQPUGTGFKTGEV0GVUECRGKPFGZCUR NUG+H$ $TQYUGT9GD68VJGP 4GURQPUGTGFKTGEV9GD68KPFGZCUR NUG 4GURQPUGTGFKTGEVQVJGTKPFGZCUR PF+H  316 ASP. Kompendium programisty Rysunek 10.1. Wyjście kodu wykorzystującego składnik Browser CapPabilities Rysunek 10.2. Wyjście kodu wykorzystującego składnik Browser CapPabilities Rozdział 10. G Składniki ASP 317 Na wstępie wymagana jest deklaracja zmiennych: 1RVKQP ZRNKEKV Tworzona jest zmienna o nazwie $ : KO$ Zmienna wykorzystana jest do stworzenia instancji obiiektu $TQYUGT CRCDKNKVKGU: UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG Następnie pytamy właściwość $TQYUGT obiektu $TQYUGT CRCDKNKVKGU, czy używana przeglądarka to Internet Explorer: +H$ $TQYUGT+ VJGP Jeśli tak, to gość zostaje przekierowany do podkatalogu ziawierającego strony dla tej przeglądarki: 4GURQPUGTGFKTGEV+ KPFGZCUR W innym wypadku kod sprawdza, czy używana przeglądarka to iNetscape Navigator: NUG+H$ $TQYUGT0GVUECRGVJGP Jeśli to prawda, gość odsyłany jest do katalogu Netscape: 4GURQPUGTGFKTGEV0GVUECRGKPFGZCUR Jeśli szerokie grono Twych gości korzysta z WebTV, musisz dysponować witryną w wersji odpowiadającej ich potrzebom: NUG+H$ $TQYUGT9GD68VJGP Jeśli jest to ich typ przeglądarki, są przekierowani dio podkatalogu 9GD68: 4GURQPUGTGFKTGEV9GD68KPFGZCUR w przeciwnym razie gości odsyła się do domyślnego widoku Twiojej witryny: 4GURQPUGTGFKTGEVQVJGTKPFGZCUR Kolejnym powodem do przekierowywania Twoich gości do określonej wersji witryny są róż- nice w technologiach. Jeśli martwisz się o to, czy starsze przeglądarki będą mogły korzystać z Twojej witryny, to metodą na zróżnicowanie wyglądu witiryny jest sprawdzenie obsługi tabel i ramek. Zwróć uwagę na ten kod:  1RVKQP ZRNKEKV KO$ UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG +H$ 6CDNGU6TWGCPF$ (TCOGU6TWGVJGP 4GURQPUG4GFKTGEVHWNNKPFGZCUR NUG+H$ 6CDNGU6TWGVJGP 4GURQPUG4GFKTGEVPQHTCOGUKPFGZCUR NUG 4GURQPUG4GFKTGEVPQPGKPFGZCUR PF+H  318 ASP. Kompendium programisty Jak zwykle wymagana jest deklaracja zmiennych: 1RVKQP ZRNKEKV Tworzona jest zmienna $ : KO$ i ustawiany jest w niej obiekt $TQYUGT CRCDKNKVKGU: UGV$ UGTXGTETGCVGQDLGEV /59 $TQYUGT6[RG Zaczynamy od pytania podstawowego. Czy przeglądarka obsłuiguje tabele i ramki? +H$ 6CDNGU6TWGCPF$ (TCOGU6TWGVJGP Jeśli przeglądarka obsługuje zarówno jedno, jak i drugie,i gość odsyłany jest tutaj: 4GURQPUG4GFKTGEVHWNNKPFGZCUR Następnie cofamy się o jeden poziom w technologii. Ramki pojawiły się później niż tabele, usuwamy więc z równania pytanie o ramki i sprawdzamy, czy przeglądarka obsługuje przy- najmniej tabele: NUG+H$ 6CDNGU6TWGVJGP Jeśli tak jest, wykorzystujemy metodę 4GFKTGEV obiektu 4GURQPUG w celu odesłania gości do odpowiedniego miejsca: 4GURQPUG4GFKTGEVPQHTCOGUKPFGZCUR W innym wypadku przeglądarka gościa nie obsługuje żadnej z tych technologii i wtedy odsyłamy go do podstawowej wersji naszej witryny: NUG 4GURQPUG4GFKTGEVPQPGKPFGZCUR Pamiętaj, że składnik szuka pozycji 7UGT#IGPV w pliku .ini i dopasowuje ją do wartości zmiennej 7UGT#IGPV zwróconej przez nagłówek HTPP. Plik .ini jest jedynie plikiem tekstowym, zawie- rającym zbiór różnego rodzaju wydruków, co oznacza, że jeśli nie będziesz się nim zajmował — plik szybko stanie się przestarzały. Faktycznie, jeśli instalujesz nowy IIS, prawdopodobnie będzie on dysponował przestarzałą wersją pliku .ini. Jeśli więc korzystasz z tego narzędzia, musisz dokładać starań, aby plik był stale aktualny. Jednym z miejsc, w których możesz otrzymać uaktualnienie, jest cyScape, Inc. (http://www.cyscape. com/browscap). Firma często udostępnia nową wersję pliku browscap.ini wraz z dodatkami i poprawkami. Możesz zgłosić chęć otrzymywania uaktualnienia przez e-mail, wtedy firma będzie powiadamiała Cię o pojawieniu się nowych wersji pliku. cyScape dysponuje również własną wersją składnika $TQYUGT CRCDKNKVKGU, która zawiera dodatkowe właściwości, inne niż te omówione w bieżącym podrozdziale. Modyfikacja pliku browser.ini Możesz również sam uaktualnić plik. Pamiętaj, że jest to tylko plik tekstowy, który musi mieć określony format. Jeśli chcesz go zmodyfikować, najpierw stwórz jego kopię zapasową. Wtedy możesz wykorzystać poniższy opis w celu modyfikacji poszcziególnych sekcji pliku. Rozdział 10. G Składniki ASP 319 Komentarzem w pliku jest każdy wiersz rozpoczynający sięi średnikiem:   GHKPKELCOQLGLRTGINæFCTMK  Każda część pliku zawiera albo nagłówek 7UGT #IGPV, albo definicję przodka. Mógłbyś na przykład zdefiniować przeglądarkę, której nie było na liście, a dla której zwracany byłby na- stępujący ciąg w 7UGT#IGPV: =/[$TQYUGTDGVC 9KPFQYU ? Zwróć uwagę na to, że definicja sekcji jest umieszczona w nawiasie kwadratowym. W następnej kolejności pojawiają się właściwości sekcji, aż do kolejnego nagłówka sekcji. Móżesz zdefiniować właściwości Twojej sekcji w następujący sposób: RCTGPV/[$TQYUGT RNCVHQTO9KP DGVC6TWG Zwróć uwagę na szczególną pozycję o nazwie RCTGPV (przodek), która informuje o tym, że gdzieś w pliku .ini znajduje się pozycja /[$TQYUGT. Przejdź do tej pozycji i użyj wszystkich wła- ściwości, o ile nie określiłem jakiejś w tej sekcji. W następnej kolejności określona została platforma oraz typ przeglądarki, beta. Gdzieś w pliku .ini musimy dodać sekcję określającą przodka. Pasuje ona dokładnie do nazwy użytej tutaj, a wygląda następująco: =/[$TQYUGT? DTQYUGT/[$TQYUGT XGTUKQP OCLQTXGT OKPQTXGT HTCOGU(#.5 VCDNGU647 EQQMKGU647 DCEMITQWPFUQWPFU(#.5 XDUETKRV647 LCXCUETKRV(#.5 LCXCCRRNGVU(#.5 2NCVHQTO9KPFQYU DGVC(CNUG Zauważ, że niektóre pozycje są powtórzone tutaj, w przodku. Te, których użyto w rzeczywistej definicji, unieważniają wartości przodka, który po prostu przechowuje domyślne wartości nie zdefiniowane ponownie przez pozycję potomka. Składnik Ad Rotator Składnik Ad Rotator udostępnia narzędzia do zarządzania paskami reklamowymi (banerami), poja- wiającymi się na stronie WWW. Składnik będzie losowo wyświetlał baner na stronie ASP za każ- dym razem, kiedy ktoś uzyskuje do niej dostęp. Składnik używa oddzielnego pliku harmonogramu, 320 ASP. Kompendium programisty który stworzony jest w celu określenia częstości wyświetlania jednych banerów względem drugich. Wywołanie składnika #F4QVCVQT wygląda następująco: UGVQDL#F4QVUGTXGTETGCVGQDLGEV /59 #F4QVCVQT 4GURQPUG9TKVGQDL#F4QV)GV#FXGTVKUGOGPV JVON#F(KNGU#FD(KNGVZV Pierwszy wiersz tworzy kopię instancję #F4QVCVQT, będącej klasą /59 , umieszczając ją w zmiennej obiektowej o nazwie QDL#F4QV: UGVQDL#F4QVUGTXGTETGCVGQDLGEV /59 #F4QVCVQT Następnie wywoływana jest metoda )GV#FXGTVKUGOGPV w celu wyszukania informacji o pasku reklamowym, który będzie wyświetlany. Zwracana wartość wysłana zostaje do przeglądarki przy użyciu metody 9TKVG obiektu 4GURQPUG: 4GURQPUG9TKVGQDL#F4QV)GV#FXGTVKUGOGPV JVON#F(KNGU#FD(KNGVZV A oto ta wpisywana do przeglądarki wartość: #*4 (JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU#F4GFKTGEVD CUR! WTNJVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU*#JVON KOCIGJVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUJCIKH +/)54 JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUJCIKH #.6)GV[QWTQTICPKCVKQPQPNKPG9+ 6** +)*6$14 4 Metodzie )GV#FXGTVKUGOGPV przekazywany jest jeden parametr, ścieżka do pliku Schedule, za- wierającego listę wyświetlanych banerów oraz informacje o częstości wyświetlania każdego z nich. Plik Schedule zawiera również działania, jakie należy podjąć w chwili, gdy gość kliknie baner, a także rozmiar prezentowanego obrazka. Metoda )GV#FXGTVKUGOGPV sprawdza wszystkie wartości pliku Schedule i tworzy pokazany powyżej kod HTML. Zawartość pliku Schedule w tym autentycznym przykładzie zaprezentowano tutaj: 4GFKTGEVJVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU#F4GFKTGEVCUR YKFVJ JGKIJV DQTFGT JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUJCIKH JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU*#JVON )GV[QWTQTICPKCVKQPQPNKPG  JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUUIKCPKOIKH JVVRYYYUKNMITCRJEQO 5KNMUETGGP)TCRJKEU+PE  JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUHQTTGPVIKH OCKNVQOEGEEJK KDOPGV 5RCEG(QT4GPV  Pierwsza sekcja pliku Schedule zawiera informacje konfiguracyjne. Pierwszy wiersz określa ścieżkę do strony, do której goście są odsyłani po klikniięciu paska reklamowego: 4GFKTGEVJVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU#F4GFKTGDEVCUR Rozdział 10. G Składniki ASP 321 Za pomocą zbioru 3WGT[5VTKPI stronie przekazywana jest nazwa klikniętego obrazka oraz adres, do którego należy po tej akcji przejść. Drugi i trzeci wiersz pierwszej sekcji określają szeriokość i wysokość paska reklamowego: YKFVJ JGKIJV Czwarty wiersz określa jego obwódkę: DQTFGT Spójrz na poprzedni HTML, stworzony przez metodę )GV#FXGTVKUGOGPV, a zobaczysz w nim informacje konfiguracyjne. Pojedyncza gwiazdka kończy sekicję konfiguracyjną: Dalej w pliku znajduje się lista banerów z ich harmonogramem. Pierwszy wiersz każdej pozycji banera jest ścieżką dostępu do niego: JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUJCIKH Potem pojawia się lokalizacja WWW, do której ostatecznie goście będą przekierowani po klik- nięciu banera: JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU*#JVON W trzecim wierszu znajduje się tekst etykietki: )GV[QWTQTICPKCVKQPQPNKPG Czwarty wiersz zawiera liczbę, określającą częstość wyświetlania jednego banera proporcjo- nalnie w stosunku do innych:  Rezultat działania s tego wpisu w pliku konfiguracyjnym pokazany jest na rysunku 10.3. Zwróć uwagę na baner znajdujący się na szczycie tego rysunku. Jest on rezultatem pierwszej pozycji w pliku, tak więc tekst etykiety (atrybut ALT) zgadza się z tym, co pokazano na rysunku, a na pasku statusu widać adres URL, z którym łączy się baner. Jeśli spojrzysz wstecz na całość pliku Schedule, zauważysz, że opisana wyżej struktura się powtarza. Następny punkt wyświetli tę grafikę: JVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGUUIKCPKOIKH Jeśli gość kliknie tę grafikę, zostaje odesłany do następująicego adresu URL: JVVRYYYUKNMITCRJEQO Tekst etykietki dla grafiki: 5KNMUETGGP)TCRJKEU+PE Relatywna liczba wyświetleń tej grafiki w porównaniu z inniymi jest taka:  322 ASP. Kompendium programisty Rysunek 10.3. Baner po pierwszym wyświetleniu. Ta pozycja wyświetli widok strony pokazany na rysunku 10.4. Zauważ, że grafika odpowiada treści pliku konfiguracyjnego komponentu. Poza tym zwróć uwagę, że jest to ta sama strona, na której prezentowany był poprzedni baner. Za każdym razem, gdy strona jest przeglądana, pojawia się na niej inna grafika, mianowicie ta, któria dawno nie była wyświetlana. Ponadto każda strona miała zaplanowaną tą samą proporcję wyświetleń, 10, ale tak być nie musi. Możesz dla jednej strony ustawić wartość 20, a dla pozostałych dwóch 10. Oznaczałoby to, że pierwsza strona ukazywałaby się dwa razy częściej niż dwiie pozostałe. Pamiętaj, że pierwszy wiersz pliku Schedule określa miejsce, do którego odsyłani są goście, gdy klikną baner: 4GFKTGEVJVVRYYYPGVUVCVUEQOPOCJCJVON#F(KNGU#F4GFKTGDEVCUR YKFVJ Ta strona ASP normalnie nie wysyla żadnego kodu HTML do przeglądarki. Daje Ci ona moż- liwość zapisywania kliknięć banera (click-through) w bazie danych w celu dalszej analizy. Poniżej przedstawiono przykład takiego kodu.  UGVEQPPUGTXGTETGCVGQDLGEV CFQFDEQPPGEVKQP EQPPQRGP OR KTUCVYQLGAJCUNQ EQPPGZGEWVGKPUGTVKPVQ4GHGTTCNU 4GHGTTGF6Q XCNWGDU A 4GSWGUV3WGT[5VTKPI WTN   TGURQPUGTGFKTGEV 4GSWGUV3WGT[5VTKPI WTN  Rozdział 10. G Składniki ASP 323 Rysunek 10.4. Drugie ogłoszenie z pliku obrotu Na początku kod łączy się z bazą danych: UGVEQPPUGTXGTETGCVGQDLGEV CFQFDEQPPGEVKQP EQPPQRGP OR KTUCVYQLGAJCUNQ Następnie kod dodaje rekord do tabeli o nazwie 4GHGTTCNU, zawierający adres docelowy na banerze klikniętym przez gościa: EQPPGZGEWVGKPUGTVKPVQ4GHGTTCNU 4GHGTTGF6Q XCNWGU A 4GSWGUV3WGT[5VTKPI WTN   W końcu goście są przekierowani do miejsca docelowego wskazanego przez kliknięty baner w witrynie WWW: TGURQPUGTGFKTGEV 4GSWGUV3WGT[5VTKPI WTN Pomyśl o innych polach, które chciałbyś zawrzeć w tej pozycji. Na przykład prawdopodobnie będziesz chciał zapisywać datę i godzinę kliknięcia banera przez gościa. Możesz również wy- korzystać składnik $TQYUGT CRCDKNKVKGU, omówiony we wcześniejszym podrozdziale, w celu zapisywania obszernych informacji na temat narzędzi goiścia, który kliknął baner. Z drugiej strony może chciałbyś dysponować stroną, na której reklamujący się mogliby sprawdzić, ile razy ich baner był kliknięty. Taką stronę prezentuje irysunek 10.5. Domyślnie strona ładuje się, wyświetlając datę w skali rocznej. Kiedy goście klikną przycisk Wyświetl raport, zobaczą wynik ich zapytania pokazany na rysunku 10.6. 324 ASP. Kompendium programisty Rysunek 10.5. Przykładowa strona raportu kliknięć Rysunek 10.6. Wynik zapytania o liczbę kliknięć Rozdział 10. G Składniki ASP 325 Kod strony wyśle zapytanie do bazy danych na podstawie informacji przesłanych w formularzu. Kod strony również musi wyświetlać informacje w skali rocznej. Główny blok kodowy jest następujący:  1RVKQP ZRNKEKV KOEQPP KO45*KVU KO6JG/GUUCIG KO5VCTV CVG KO PF CVG +H0QV+U ORV[ 4GSWGUV(QTO  KURNC[4GRQTV 6JGP UGVEQPPUGTXGTETGCVGQDLGEV CFQFDEQPPGEVKQP EQPPQRGP OR KTUCVYQLGAJCUNQ UGV45*KVUEQPP ZGEWVG UGNGEV QWPV 4GHGTTCN+ CUD6JG QWPVA HTQO4GHGTTCNUA YJGTG7UGT0COG 4GSWGUV(QTO 7UGT0COG  A CPF*KV CVG  4GSWGUV(QTO 5VCTV CVG  A CPF*KV CVG 4GSWGUV(QTO  PF CVG   6JG/GUUCIG9V[OQMTGUKGCTGLGUVTQYCPQA 45*KVU 6JG QWPV MNKMPKúè GNUG 6JG/GUUCIG9RTQYCFļPCYúWľ[VMQYPKMCQTCITCPKEPGFDCV[FNCA FNCMVÎTGIQEJEGURQPCèNKEDúMNKMPKúè PF+H 5VCTV CVG;GCT CVG PF CVG CVG  Na wstępie wykorzystujemy dyrektywę 1RVKQP ZRNKEKV: 1RVKQP ZRNKEKV Następne deklarujemy zmienną zapamiętującą połączenie zi bazą danych: KOEQPP Dalej deklarujemy zmienną przechowującą informacje z baizy danych: KO45*KVU Zmienna wiadomości będzie wyświetlała w przeglądarce instirukcje lub wynik zapytania: KO6JG/GUUCIG Kolejne dwie zmienne będą przechowywały domyślną datę pocizątkową: KO5VCTV CVG i datę końcową: KO PF CVG Strona ma dwa stany. W stanie początkowym strona właśnie została wyświetlona i goście muszą ujrzeć instrukcje postępowania. W stanie przesyłania goście wysyłają formularz, a my musimy go przetworzyć. Stan strony określamy, sprawdzając w zbiorze (QTO, czy przycisk wyświetlający raport ( KURNC[4GRQTV) został naciśnięty. +H0QV+U ORV[ 4GSWGUV(QTO  KURNC[4GRQTV 6JGP 326 ASP. Kompendium programisty Jeśli element zbioru formularza nie jest pusty, formularz został przesłany. W tym wypadku mu- simy połączyć się z bazą danych, aby ustalić liczbę kliknięć. Tworzony jest obiekt QPPGEVKQP: UGVEQPPUGTXGTETGCVGQDLGEV CFQFDEQPPGEVKQP który łączy się z żądaną bazą danych: EQPPQRGP OR KTUCVYQLGAJCUNQ Uruchamiane jest zapytanie, które zwraca liczbę rekordów dla użytkownika pomiędzy wybranymi przez niego datami: UGV45*KVUEQPP ZGEWVG UGNGEV QWPV 4GHGTTCN+ CU6JG DQWPVA HTQO4GHGTTCNUA YJGTG7UGT0COG 4GSWGUV(QTO 7UGT0COG  A CPF*KV CVG  4GSWGUV(QTO 5VCTV CVG  A CPF*KV CVG 4GSWGUV(QTO  PF CVG   Następnie do zmiennej wpisywany jest wyświetlany gościom tekst, który zawiera wyszukane w bazie danych informacje o kliknięciach: 6JG/GUUCIG9V[OQMTGUKGCTGLGUVTQYCPQA 45*KVU 6JG QWPV MNKMPKúè Jeśli formularz nie został przesłany, w zmiennej wiadomości ustawiana jest instrukcja postę- powania: GNUG 6JG/GUUCIG9RTQYCFļPCYúWľ[VMQYPKMCQTCITCPKEPGFCV[FNCA FNCMVÎTGIQEJEGURQPCèNKEDúMNKMPKúè W każdym z przypadków musimy utworzyć zmienne 5VCTV CVG i PF CVG. Jako datę początkową ustawiamy pierwszy dzień bieżącego roku: 5VCTV CVG;GCT CVG a jako datę końcową bieżącą datę systemu: PF CVG CVG Następnie używamy wbudowanej w HTML metody 9TKVG obiektu 4GURQPUG w celu wysłania zmiennej wiadomości do przeglądarki: 2 $ 4GURQPUG9TKVG6JG/GUUCIG $ Wartość daty początkowej wpisywana jest w pole tekstowei StartDate: +02766;2 6 :60#/ 5VCTV CVG8#.7 4GURQPUG9TKVG 5VCTV CVG  5+ /#:. 0)*6 Następnie ustalamy domyślną datę końcową w parametrze wartiości: +02766;2 6 :60#/  PF CVG8#.7 4GURQPUG9TKVG PF CVG  5+ /#:. 0)*6 Rozdział 10. G Składniki ASP 327 Składnik Page Counter Składnik Page Counter pozwala w prosty sposób śledzić i wyświetlać liczbę trafnych wywołań strony WWW. Ten składnik nie jest instalowany domyślnie wraz z serwerem IIS. Jest on częścią zestawu IIS Resource Kit, który możesz znaleźć w witrynie Microsoftu lub, jeśli subskrybujesz Microsoft Technet, znajduje się on na CD-ROM-ie. Składnik możesz zainstalować, kopiując plik z płyty CD-ROM położony w IIS Resource KitComponentPage CounterDLLi386 PageCnt.dll, a następnie umieszczając go w Twoim katalogu WinNTSystem32. Wtedy możesz zarejestrować składnik przy użyciu polecenia Uruchom (Run) z menu Start, wprowadzając tekst 4GIUXT2CIG PVFNN. Powinieneś ujrzeć wiadomość o pomyślnym zarejestrowaniu składnika, którą zaprezentowano na rysunku 10.7. Po zarejestrowaniu biblioteki możesz zacząć korzystać ze składnika w kodzie. Składnik tworzy się podobnie jak inne składniki, to znaczy przy użyciu metody TGCVG1DLGEV obiektu 5GTXGT. Rysunek 10.7. Pomyślna rejestracja składnika Page Counter Dokumentacja Microsoftu prezentuje dwa sposoby tworzenia obiektu. Odkryłem, że jeden z nich nie działa, ale przyjrzyjmy się obydwu sposobom na wypadek, gdyby przyszłe wersje używały tej niefunkcjonalnej składni. Poniższa deklaracja aktuailnie nie działa: 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV /59 2CIG QWPVGTD Zmienna /[2CIG QWPVGT zawiera instancję składnika 2CIG QWPVGT. Druga składnia do tworzenia kopii tego składnika używa innego ciągu aplikacji i klasy:i 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QWPVGT Tu również zmienna /[2CIG QWPVGT jest obiektem klasy 2CIG QWPVGT. Ta biblioteka .dll tworzy plik tekstowy i zapamiętuje, ile razy strona była przeglądana. Składnik okresowo umieszcza te informacje wpliku tekstowym, tak więc dane zostaną zachowane, nawet gdy serwer zostanie wyłączony. Kiedy składnik jest inicjowany, ładuje wartości trafnych wywołań różnych stron. Aby zapisać wywołanie na stronie, musisz użyć metody 2CIG*KV składnika 2CIG QWPVGT:  1RVKQP ZRNKEKV KO/[2CIG QWPVGT 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT /[2CIG QWPVGT2CIG*KV  328 ASP. Kompendium programisty Najpierw instrukcja 1RVKQP ZRNKEKV: 1RVKQP ZRNKEKV Następnie tworzona jest zmienna przechowująca obiekt i2CIG QWPVGT: KO/[2CIG QWPVGT W zmienną wpisywany jest składnik 2CIG QWPVGT: 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT Metoda 2CIG*KV obiektu 2CIG QWPVGT używana jest do inkrementacji liczby dla określonej strony: /[2CIG QWPVGT2CIG*KV tak więc stan licznika dla tej strony wewnętrznie zwiększany jest o jeden. Składnik zapamiętuje nazwę strony i jej położenie wraz z wartością licznikai, co zapewniaunikalność wpisu. Licznik stron nie byłby wiele wart, jeśli nie mógłbyś wyświetlać jego zawartości. W tym celu składnik zawiera metodę *KVU. Metoda ta ma następującą składnię: 6JG QWPV/[2CIG QWPVGT*KVU 1RV2CIG0COG Zmienna /[2CIG QWPVGT musi być poprawnym obiektem 2CIG QWPVGT. Zwracaną wartością pole- cenia jest liczba trafnych wywołań strony, która znajdzie się w zmiennej 6JG QWPV. Metoda pobiera jeden nieobowiązkowy parametr — nazwę i wirtualną ścieżkę do strony, której liczbę wywołań chcemy poznać. Jeśli nie podasz tego parametru, metoda izwróci liczbę wywołań bieżącej strony. Spójrzmy na przykładową witrynę, która korzysta z tego składnika. Na początku strona powi- tania, którą pokazano na rysunku 10.8. Rysunek 10.8. Strona powitania przykładowej witryny Rozdział 10. G Składniki ASP 329 Strona powitania zapamiętuje liczbę swoich wywołań, ale informacji tej nie wyświetla. Następna strona przykładowej witryny również zapamiętuje liczbę swoich wywołań, a ponadto wyświetla informacje o wywołaniach obydwu stron witryny. Ta strona pokazana jest na rysunku 10.9. Zauważ, że wyświetlane informacje faktycznie dotyczą obu stron. Rysunek 10.9. Strona wyświetlająca informacje o liczbie wywołań Kod strony powitania inkrementuje licznik wywołań dla tiej strony. Blok kodowy jest taki:  1RVKQP ZRNKEKV KO/[2CIG QWPVGT 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT /[2CIG QWPVGT2CIG*KV  Po pierwsze, informujemy kompilator o tym, że deklarowanie będą zmienne: 1RVKQP ZRNKEKV Następnie deklarujemy zmienną licznika stron: KO/[2CIG QWPVGT i tworzymy jego instancję: 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT Licznik strony powitania jest zwiększany o jeden (inkriementowany): /[2CIG QWPVGT2CIG*KV 330 ASP. Kompendium programisty Kod strony informacyjnej inkrementuje licznik tej strony, a następnie wyświetla informacje o trafnych wywołaniach obu stron. Główny blok kodowy wygląda następująco:  1RVKQP ZRNKEKV KO/[2CIG QWPVGT KO QOR+PHQ QWPV KO9GNEQOG QWPV 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT /[2CIG QWPVGT2CIG*KV +H/[2CIG QWPVGT*KVU6JGP  QOR+PHQ QWPVTC GNUG  QOR+PHQ QWPV/[2CIG QWPVGT*KVUTC[ PF+H +H/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNEQOGCUR 6JGP 9GNEQOG QWPVTC GNUG 9GNEQOG QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNDEQOGCUR TC[ PF+H  Pierwszy wiersz kodu to instrukcja 1RVKQP ZRNKEKV: 1RVKQP ZRNKEKV Następnie deklarowana jest zmienna obiektowa licznika istron: KO/[2CIG QWPVGT Tworzona jest zmienna, która będzie przechowywała liczibę wywołań strony informacyjnej: KO QOR+PHQ QWPV Ta zmienna będzie zapamiętywała liczbę wywołań strony powiitania: KO9GNEQOG QWPV Następnie tworzony jest obiekt licznika stron: 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT Metoda 2CIG*KV używana jest do inkrementacji liczby wywołań tej stroniy: /[2CIG QWPVGT2CIG*KV Następnie musimy stworzyć wiadomości tekstowe, informujące o liczbie wywołań obu stron. Metoda *KVU obiektu 2CIG QWPVGT wyszukuje tę wartość. Najpierw jednak patrzymy na liczbę wywołań tej strony: +H/[2CIG QWPVGT*KVU6JGP Kod tego bloku +H nadaje odpowiednią formę gramatyczną słowu „raz”: QOR+PHQ QWPVTC Zauważ, że używamy metody *KVU bez parametru, ponieważ na razie zajmujemy się liczbą wywołań bieżącej strony: Rozdział 10. G Składniki ASP 331 GNUG  QOR+PHQ QWPV/[2CIG QWPVGT*KVUTC[ PF+H Dalej te same czynności są realizowane dla strony powitania. Zauważ, że teraz metoda *KVU zawiera parametr, wirtualną ścieżkę do strony, której liiczbę wywołań chcemy poznać: +H/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNEQOGCUR 6DJGP 9GNEQOG QWPVTC GNUG 9GNEQOG QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNEQOGCUR TC[ PF+H Następnie w HTML-u wypisywana jest informacja o wywołaniach wspólnie z dwoma ciągami: 2 6CUVTQPCD[đCRTGINæFCPCTGURQPUGYTKVG QOR+PHQ DQWPV  $4 5VTQPCRQYKVCPKCD[đCRTGINæFCPCTGURQPUGYTKVG9DGNEQOG QWPV  Składnik 2CIG QWPVGT ma jeszcze jedną metodę, 4GUGV, która wpisuje do licznika strony wartość zero. Metoda ma następującą składnię: /[2CIG QWPVGT4GUGV1RV2CIG Zmienna /[2CIG QWPVGT musi być prawidłowym obiektem 2CIG QWPVGT. Metoda posiada jeden nieobowiązkowy parametr. Określa on wirtualną ścieżkę do strony, której licznik chcesz wyze- rować. Jeśli nie podasz tego parametru, wyzerowany zostanie licznik strony bieżącej. Uzupełnijmy naszą przykładową witrynę o tę metodę, dodając do niej stronę raportu wyszcze- gólniającą liczbę wywołań każdej ze stron i pozwalającą gościowi na zerowanie liczników. Taką stronę pokazano na rysunku 10.10. Zawiera ona w pierwszej kolumnie nazwy wszystkich stron, a dalej liczbę ich wywołań i łącza pozwalające na wyzerowanie licznika każdej ze stron. Kliknięcie łącza spowoduje wpis do licznika wartości 0, a stronai zostanie ponownie wyświetlona. Jeśli na przykład klikniesz łącze Wyczyść dla strony informacyjnej, jej licznik zostanie skasowany, jak to pokazano na rysunku 10.11. Kod strony raportu musi dodać jeden do liczby swoich wywołań, wyzerować licznik żądanej strony i ponownie wyświetlić liczbę wywołań dla każdej strony. Główny blok kodowy jest taki:  1RVKQP ZRNKEKV KO/[2CIG QWPVGT KO QOR+PHQ QWPV KO9GNEQOG QWPV KO*KV4GRQTV QWPV 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT /[2CIG QWPVGT2CIG*KV +HPQVKUGORV[ 4GSWGUV3WGT[5VTKPI  NGCT2CIG 6JGP +H4GSWGUV3WGT[5VTKPI  NGCT2CIG 9GNEQOG6JGP /[2CIG QWPVGT4GUGV CURDQQMEREJVONYGNEQOGCUR  NUG+H4GSWGUV3WGT[5VTKPI  NGCT2CIG  +6JGP /[2CIG QWPVGT4GUGV CURDQQMEREJVONEQORCP[AKPHQCDUR  NUG+H4GSWGUV3WGT[5VTKPI  NGCT2CIG 4GRQTV6JGP /[2CIG QWPVGT4GUGV  PF+H PF+H +H/[2CIG QWPVGT*KVU CURDQQMEREJVONEQORCP[AKPHQCUR D6JGP  QOR+PHQ QWPVTC 332 ASP. Kompendium programisty Rysunek 10.10. Strona raportu wywołań Rysunek 10.11. Strona raportu po wyzerowaniu licznika Rozdział 10. G Składniki ASP 333 GNUG  QOR+PHQ QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONEDQORCP[AKPHQCUR TC[ PF+H +H/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNEQOGCUR 6DJGP 9GNEQOG QWPVTC GNUG 9GNEQOG QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNDEQOGCUR TC[ PF+H +H/[2CIG QWPVGT*KVU6JGP *KV4GRQTV QWPVTC GNUG *KV4GRQTV QWPV/[2CIG QWPVGT*KVUTC[ PF+H  Na wstępie pojawia się instrukcja 1RVKQP ZRNKEKV: 1RVKQP ZRNKEKV Następnie tworzona jest zmienna dla obiektu 2CIG QWPVGT: KO/[2CIG QWPVGT Potrzebujemy również zmiennych do zapamiętania liczby wyiwołań każdej ze stron: KO QOR+PHQ QWPV KO9GNEQOG QWPV KO*KV4GRQTV QWPV Tworzony jest obiekt 2CIG QWPVGT: 5GV/[2CIG QWPVGT5GTXGT TGCVG1DLGEV ++55CORNG2CIG QDWPVGT Zapisywane jest wywołanie strony raportu: /[2CIG QWPVGT2CIG*KV Następnie kod sprawdza, czy któryś licznik powinien być wyzerowany. Łącza służące do zerowa- nia liczników przekazują nazwę strony poprzez pole NGCT2CIG za pomocą zbioru 3WGT[5VTKPI (będziesz się mógł o tym przekonać nieco później). Jeśli więc pole to nie jest puste, należy wyzerować licznik strony: +HPQVKUGORV[ 4GSWGUV3WGT[5VTKPI  NGCT2CIG 6JGP Jeśli wartością pola będzie ciąg 9GNEQOG, musi być wyzerowany licznik strony powitania: +H4GSWGUV3WGT[5VTKPI  NGCT2CIG 9GNEQOG6JGP Zauważ, że metoda 4GUGV musi przekazać parametr określający wirtualną ścieżkę strony, której licznik jest zerowany, ponieważ metoda ta odnosi się dio strony innej niż bieżąca: /[2CIG QWPVGT4GUGV CURDQQMEREJVONYGNEQOGCUR Podobne sprawdzenie i akcja realizowane są dla stroniy informacyjnej: NUG+H4GSWGUV3WGT[5VTKPI  NGCT2CIG  +6JGP /[2CIG QWPVGT4GUGV CURDQQMEREJVONEQORCP[AKPHQCURD 334 ASP. Kompendium programisty Zwróć uwagę na to, że metoda 4GUGV, odnosząca się do strony raportu, nie posiada parametru. Jest to spowodowane tym, że zerujemy liczbę wywołań strony bieżącej, tak więc parametr nie jest potrzebny: NUG+H4GSWGUV3WGT[5VTKPI  NGCT2CIG 4GRQTV6JGP /[2CIG QWPVGT4GUGV Następnie kod przygotowuje odpowiedni tekst informacji o wywołaniach strony informacyjnej: +H/[2CIG QWPVGT*KVU CURDQQMEREJVONEQORCP[AKPHQCUR D6JGP  QOR+PHQ QWPVTC GNUG  QOR+PHQ QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONEDQORCP[AKPHQCUR TC[ PF+H To samo robione jest dla strony powitania: +H/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNEQOGCUR 6DJGP 9GNEQOG QWPVTC GNUG 9GNEQOG QWPV/[2CIG QWPVGT*KVU CURDQQMEREJVONYGNDEQOGCUR TC[ PF+H jak również dla strony raportu: +H/[2CIG QWPVGT*KVU6JGP *KV4GRQTV QWPVTC GNUG *KV4GRQTV QWPV/[2CIG QWPVGT*KVUTC[ PF+H Tabela HTML musi być wypełniona właściwym tekstem dla każdej istrony. 6 9+ 6* 2 5VTQPCRQYKVCPKC6 6 9+ 6* 2 TGURQPUGYTKVG9GNEQOG QWPV 6 6 9+ 6* 2 #*4 (JKVTGRQTVCUR! NGCT2CIG9GNEQOG $ 9[E[ħè$ # 6 6 9+ 6* 2 5VTQPCKPHQTOCE[LPC6 6 9+ 6* 2 TGURQPUGYTKVG QOR+PHQ QWPV 6 6 9+ 6* 2 #*4 (JKVTGRQTVCUR! NGCT2CIG + $ 9[E[ħè$ # 6 6 9+ 6* 2 5VTQPCTCRQTVWY[YQđCē6 6 9+ 6* 2 TGURQPUGYTKVG*KV4GRQTV QWPV 6 6 9+ 6* 2 #*4 (JKVTGRQTVCUR! NGCT2CIG4GRQTV $ 9[E[ħè$ # 6 Zauważ, że pierwsza komórka tabeli HTML zawiera jedynie naizwę strony: 6 9+ 6* 2 5VTQPCRQYKVCPKC6 Następnie do przeglądarki wpisywana jest informacja o tirafnych wywołaniach: 6 9+ 6* 2 TGURQPUGYTKVG9GNEQOG QWPV 6 Zwróć uwagę, że łącze zerowania licznika odnosi się do tej samej strony. Ponadto poprzez zbiór 3WGT[5VTKPI przekazywana jest wraz z łączem nazwa tej strony, której licznik należy wyzerować: 6 9+ 6* 2 #*4 (JKVTGRQTVCUR! NGCT2CIG9GNEQOG $ 9[E[ħè$ # 6 Rozdział 10. G Składniki ASP Składnik Counters 335 Składnik Counters zapewnia prosty interfejs do przechowywania liczb całkowitych, które możesz odczytywać, zapisywać, usuwać i inkrementować na wszystkich stronach Twojej witryny, a nawet poza granicami aplikacji ASP. Tak jak to było w wypadku ostatniego składnika, również ten jest częścią zestawu IIS Resource Kit. Oto jego lokalizacjia: IIS Resource KitComponentCountersDLLi386counters.dll Umieść plik w katalogu WinNTSystem32, a następnie zarejestruj składnik przy użyciu pole- cenia Uruchom (Run) z menu Start, wprowadzając zapis Regsvr32 counters.dll. Po pomyśl- nym zarejestrowaniu składnika możesz zacząć z niego koirzystać. Składnię do tworzenia składnika QWPVGTU przedstawiono poniżej: UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU Instancja składnika QWPVGTU tworzona jest przy użyciu metody TGCVG1DLGEV obiektu 5GTXGT. Metodzie przekazuje się ciąg zawierający aplikację i klasę — /59  QWPVGTU. Obiekt klasy QWPVGTU jest zwracany w zmiennej /[ QWPVGT. Składnik QWPVGTU przechowuje wartości liczników w pliku tekstowym położonym w tym samym miejscu, co plik biblioteki. Wartości te dostępne są na każdej stronie Twojej witryny WWW, nawet jeśli witryna umiejscowiona jest w innej aplikaciji ASP. Takie zmienne mają zasięg przekraczający zasięg wszystkich innych omówionych do tej pory. Zwróciliśmy już uwagę na zmienne obiektu 5GUUKQP, które są dostępne dla wszystkich stron aplikacji ASP, lecz w czasie trwania określonej sesji. Przyjrzeliśmy się również zmiennym obiektu #RRNKECVKQP osiągalnym dla wszystkich stron i w czasie trwania wszystkich sesji, ale w obrębie jednej aplikacji ASP. Natomiast zmienne licznika przekraczają te ograniczenia, po- nieważ są dostępne dla wszystkich stron bez względu na tio, do której aplikacji ASP należą. Licznik tworzy się, wyszukując jego wartości lub je ustawiając. Wyszukiwanie wartości licznika realizuje się przy użyciu metody )GV składnika QWPVGTU: 6JG8CNWG/[ QWPVGT)GV 0COG1H QWPVGT Zmienna /[ QWPVGT musi być instancją składnika QWPVGTU. Metoda )GV pobiera jeden parametr, którym jest nazwa licznika. Metoda zwraca aktualną wartość licznika i umieszcza ją w zmiennej 6JG8CNWG. Jeśli licznik o podanej nazwie nie istnieje, zostajie utworzony i zwracana jest wartość 0. W tym przykładzie:  1RVKQP ZRNKEKV KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU 4GURQPUG9TKVG/[ QWPVGT)GV 2TQFWEV8KGYU  w przeglądarce wyświetlona zostanie wartość licznika 2TQFWEV8KGYU. Jeśli taki licznik nie istnieje, zostaje utworzony, a w przeglądarce wyświetlania jest liczba 0. 336 ASP. Kompendium programisty Aby wpisać do licznika jakąś określoną wartość, możesz wykorzystać metodę 5GV. Ustawia ona w liczniku wskazaną przez Ciebie wartość, a jeśli licznik o podanej nazwie nie istnieje, składnik tworzy nowy licznik. Metoda ma następującą wartość: /[ QWPVGT5GV0COG1H QWPVGT8CNWG1H QWPVGT Zmienna /[ QWPVGT musi być prawidłowym obiektem QWPVGTU. Metodzie 5GV przekazywane są dwa parametry: pierwszy jest nazwą licznika, którego wartość chcemy ustawić, drugi jest tą właśnie wartością. Na przykład:  1RVKQP ZRNKEKV KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU /[ QWPVGT5GV#NN2CIG8KGYU  Ten kod wpisze wartość 123 do licznika o nazwie #NN2CIG8KGYU. Jeśli taki licznik nie istnieje, zostaje utworzony i wpisywana jest do niego żądana waritość. Kolejną metodą składnika jest metoda +PETGOGPV, która zwiększa wartość licznika o jeden. Metoda ma następującą składnię: /[ QWPVGT+PETGOGPV0COG1H QWPVGT Zmienna /[ QWPVGT musi być prawidłową instancją składnika QWPVGTU. 0COG1H QWPVGT jest nazwą inkrementowanego licznika. Zwróć uwagę na ten przykład:  1RVKQP ZRNKEKV KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU /[ QWPVGT+PETGOGPV#NN2CIG8KGYU  Tutaj stan licznika #NN2CIG8KGYU jest zwiększany o jeden, jeśli więc jego wartość wynosiła wcześniej 123, teraz będzie to 124. Składnik QWPVGTU ma jeszcze jedną metodę, 4GOQXG, która usuwa licznik z pliku liczników. Jeśli po użyciu tej metody następuje odwołanie do usuniętego licznika, jest on tworzony na nowo, a jego wartość wynosi 0 (jeśli licznik jest tworzony przy użyciu metody 5GV). Metoda ma następującą składnię: /[ QWPVGT4GOQXG0COG1H QWPVGT Zmienna /[ QWPVGT musi być instancją składnika QWPVGTU. Metoda pobiera jeden parametr — nazwę usuwanego licznika. Na przykład:  1RVKQP ZRNKEKV Rozdział 10. G Składniki ASP 337 KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU /[ QWPVGT4GOQXG#NN2CIG8KGYU  W tym kodzie licznik #NN2CIG8KGYU jest usuwany z pamięci. Jeśli usunięty licznik jest następnie wywoływany przy użyciu metody 5GV lub )GV, jest tworzony ponownie. W następnym bloku kodu użyto wszystkich omówionych metod, aby zademonstrować działa- nie składnika.  1RVKQP ZRNKEKV KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU 4GURQPUG9TKVG$ 6GTCVYQTQP[LGUVPQY[NKEPKM2  4GURQPUG9TKVG,GIQYCTVQħèY[PQUK 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  /[ QWPVGT5GV QWPVGT 4GURQPUG9TKVG6GTCYRKUCPCQUVCđCFQPKGIQYCTVQħè 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  /[ QWPVGT+PETGOGPV QWPVGT 4GURQPUG9TKVG.KEPKMQUVCđKPMTGOGPVQYCP[ 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  /[ QWPVGT4GOQXG QWPVGT 4GURQPUG9TKVG.KEPKMQUVCđWUWPKúV[2  /[ QWPVGT5GV QWPVGT 4GURQPUG9TKVG7UVCYKQPCQUVCđCYCTVQħèPQYGIQNKEPKMCD 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2   Na początku umieszczamy instrukcję 1RVKQP ZRNKEKV: 1RVKQP ZRNKEKV Tworzona jest zmienna przechowująca obiekt QWPVGTU: KO/[ QWPVGT Zmienna zostaje zainstancjonowana: UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU Poprzez wywołanie metody )GV tworzony jest licznik i wyświetlana jest jego początkowa wartość: 4GURQPUG9TKVG$ 6GTCVYQTQP[LGUVPQY[NKEPKM2  4GURQPUG9TKVG,GIQYCTVQħèY[PQUK 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  W ten sam licznik wpisywana jest liczba 33: /[ QWPVGT5GV QWPVGT która następnie wyświetlana jest w przeglądarce przy użyciiu metody )GV: 4GURQPUG9TKVG6GTCYRKUCPCQUVCđCFQPKGIQYCTVQħè 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  338 ASP. Kompendium programisty Licznik QWPVGT jest inkrementowany: /[ QWPVGT+PETGOGPV QWPVGT Wartość licznika ponownie jest wyświetlana w przeglądarcei: 4GURQPUG9TKVG.KEPKMQUVCđKPMTGOGPVQYCP[ 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  Wykorzystana zostaje metoda 4GOQXG w celu usunięcia licznika QWPVGT: /[ QWPVGT4GOQXG QWPVGT 4GURQPUG9TKVG.KEPKMQUVCđWUWPKúV[2  Następnie tworzony jest drugi licznik, który będzie wyświetlany na kolejnej stronie, znajdującej się w obrębie innej aplikacji ASP: /[ QWPVGT5GV QWPVGT a wartość tego licznika prezentowana jest tutaj: 4GURQPUG9TKVG7UVCYKQPCQUVCđCYCTVQħèPQYGIQNKEPKMCD 4GURQPUG9TKVG/[ QWPVGT)GV  QWPVGT 2  Wygląd strony przedstawia rysunek 10.12. Rysunek 10.12. Rezultat działania kodu licznika Pamiętaj, że liczniki mają zasięg przekraczający zakres aplikacji ASP, tak więc na kolejnej stronie należącej do innej aplikacji ASP możemy odwoływać się do ilicznika stworzonego w tym kodzie:  1RVKQP ZRNKEKV KO/[ QWPVGT UGV/[ QWPVGT5GTXGT TGCVG1DLGEV /59  QWPVGTU 4GURQPUG
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

ASP. Kompendium programisty
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: