ajax on rails full version.pdf

(3917 KB) Pobierz
1239615319.005.png
5.
RJS .................................................................................................................................. 71
Instrukcje zamiast danych
71
Umieszczenie R w skrócie RJS
72
Przykłady z życia wzięte
85
Podsumowanie
87
6.
Użyteczność Ajaksa ......................................................................................................89
Zasady użyteczności
90
Kontekst Internetu
94
Użyteczność w Internecie
97
Programowanie uwzględniające różne przeglądarki
103
Podsumowanie
107
7.
Testowanie i usuwanie błędów ................................................................................. 109
Usuwanie błędów
110
Testowanie
122
Podsumowanie
134
8.
Bezpieczeństwo .......................................................................................................... 135
Zdrowy sceptycyzm: nie ufać danym wejściowym użytkownika
135
Hashowanie haseł
144
Uciszanie logów
145
Polityka tej samej domeny
146
Używanie i nadużywanie metod HTTP
148
Szyfrowanie i certyfikaty bezpieczeństwa
151
Lista mailingowa o bezpieczeństwie w Rails
152
Podsumowanie
152
9.
Wydajność ................................................................................................................... 153
Środowiska projektowe i produkcyjne
153
Przechowywanie sesji
154
Buforowanie wyjścia
155
Pakowanie zasobów
160
Postępowanie z długo działającymi zadaniami
162
Podsumowanie
164
10.
Informator o Prototype .............................................................................................. 165
Wsparcie Ajaksa
166
Manipulacja DOM
172
Wbudowane rozszerzenia
185
4 |
Spis treści
11.
Informator o script.aculo.us ....................................................................................... 199
Efekty wizualne
199
Przeciągnij i upuść
209
Kontrolki
218
Rozszerzenia klasy element
226
Konstruktor DOM
228
Testowanie jednostkowe JavaScript
229
Metody narzędziowe
232
Przykład A Quiz ...........................................................................................................233
Przykład B Galeria zdjęć ............................................................................................ 249
Przykład C Aplikacja współpracy w grupie ...............................................................267
Skorowidz ...................................................................................................................315
Spis treści |
5
ROZDZIAŁ 2.
Pierwsze kroki
O, Ajaksie! Znowuż Cię przyzywam.
Sofokles
W tym rozdziale głównym zamysłem jest zrobienie rundki, małymi kroczkami, po naprawdę
prostych przykładach wykorzystania technologii Ajax. Rails dostarcza wiele możliwości two-
rzenia złożonych interakcji w technologii Ajax z użyciem bardzo małej ilości kodu. Ale żeby
zrozumieć, co się dzieje „pod maską”, każdy powinien być obeznany z najniższym pozio-
mem działania technologii Ajax (np. obiektem XMLHttpRequest ). Po przyswojeniu treści tej
książki tworzenie obiektu XMLHttpRequest za pomocą biblioteki Prototype lub bez jej użycia
nie będzie stanowiło problemu. Czytelnik będzie potrafił z pomocą Rails utworzyć proste inte-
rakcje w technologii Ajax bez pisania jakiegokolwiek kodu w JavaScripcie. Z tym założeniem
zdobędziemy wiedzę na temat działania pomocników Rails oraz dowiemy się, jak wielu kło-
potów one oszczędzają.
Dla czytelników, którzy mieli okazję zapoznać się z Rails i znają podstawy Ajaksa, ten roz-
dział będzie okazją do odświeżenia wiedzy, warto przynajmniej przyjrzeć się przykładom.
Staromodny sposób
Żeby rozpocząć, wykonajmy najprostszą rzecz do zrobienia z użyciem technologii Ajax: klik-
nijmy łącze i zaprezentujmy odpowiedź z serwera — używając bezpośrednio XMLHttpRequest ,
bez pomocy Prototype czy pomocników Rails dla JavaScript.
Używanie XMLHttpRequest jest często opisywane jako coś wyjątkowo trudnego. Łatwo zauwa-
żyć, że po zdobyciu odrobiny doświadczenia i poznaniu kilku nowych koncepcji nie jest to aż
tak zawiłe, jak można by było się spodziewać na podstawie powszechnej opinii.
Rozpoczynanie projektu
Osoby, które nie stworzyły przykładu szkieletu Rails w poprzednim rozdziale, powinny zrobić
to teraz, wpisując w wierszu poleceń systemowych:
rails ajaxonrails
cd ajaxonrails
script/server
29
1239615319.006.png
 
Za pomocą przeglądarki należy otworzyć stronę http://localhost:3000/ — powinien się pojawić ekran
powitalny Rails (dla celów przyszłego projektowania warto pamiętać, że script/server
uruchamia na porcie 3000 serwer HTTP). Teraz utwórzmy nowy kontroler, który nazwiemy
Chapter2Controller , z akcją myaction . (Po uruchomieniu serwera w jednym terminalu
warto otworzyć inny).
script/generate controller chapter2 myaction
Generator Rails jest używany do uzupełniania szkieletu — przeważnie przez tworzenie
nowych kontrolerów i modeli. Oczywiście można by w prosty sposób utworzyć
kontroler plików ręcznie, ale używanie generatora jest oszczędnością pisania — co
zapobiega robieniu błędów.
Generator ma także inny skutek: za każdym razem, gdy generuje się kontroler, two-
rzony jest również współpracujący z nim plik testów funkcjonalnych. To sposób Rails
na przypominanie, że testowanie jest ważną częścią tworzenia aplikacji. Aby do-
wiedzieć się więcej o dostępnych generatorach i ich opcjach, należy uruchomić
script/generate bez żadnych argumentów.
Teraz trzeba przejść do http://localhost:3000/chapter2/myaction . Należy się spodziewać nowo utwo-
rzonego widoku jak na rysunku 2.1.
Rysunek 2.1. Nowo utworzony kontroler Rails i jego widok
Proszę zauważyć, że domyślnie pierwsza część adresu URL determinuje kontroler, a druga akcję
— metodę w ramach kontrolera. Teraz będziemy edytować szablon dla tej akcji, do którego pro-
wadzi ścieżka app/views/chapter2/myaction.rhtml . Dodajemy ten fragment HTML na dole pliku.
<p><a href="#" onclick="alert('Cze ść !');">Inline alert( )</a></p>
Jak można zauważyć, tworzymy akapit z prostym łączem — ale zamiast standardowego atrybutu
href używamy onclick , do którego dostarczamy fragment kodu JavaScript do uruchomie-
nia. Po odświeżeniu przeglądarki i kliknięciu łącza pojawi się to, co przedstawia rysunek 2.2.
Więcej niż jedna czy dwie instrukcje wstawione do atrybutu onclick mogłyby szybko stać się
niewygodne. Przenieśmy kod do osobnej funkcji JavaScript poprzez dodanie tego, co znaj-
duje się poniżej:
<p><a href="#" onclick=" customAlert( ); ">Wywo ł anie w ł asnej funkcji</a></p>
<script type="text/javascript">
function customAlert( ) {
alert('Powitanie z własnej funkcji.');
}
</script>
30 | Rozdział 2. Pierwsze kroki
1239615319.007.png 1239615319.001.png 1239615319.002.png 1239615319.003.png 1239615319.004.png
 
Zgłoś jeśli naruszono regulamin