RSS

AJAX — niezbędny w nowoczesnym serwisie WWW

Liczba odsłon: 15

Klasyczne WWW wciąż trzyma się nieźle. Trudno jednak dzisiaj stwo­rzyć nowo­czesny, ele­gancki serwis WWW nie posił­kując się możliwoś­ciami techno­logii AJAX.

AJAX umożliwia użytkownikowi bardziej natu­ralną inter­akcję z serwisem WWW. Dzięki AJAX nie trzeba za każdym razem czekać na pełne odświe­żenie strony (następu­jące w odpo­wiedzi na działanie użytkownika); strona zostanie zmodyfiko­wana prawie natych­miast, a o oczeki­waniu na zmianę może infor­mować eleganckie wysza­rzenie chwilowo zabloko­wanych ele­mentów steru­jących i graficzny symbol postępu.

AJAX to jednak nie tylko wygoda użytko­wania i ele­gancja. Przede wszystkim, dobrze zaimplemento­wany, umożliwia znaczne zmniej­szenie ilości danych transmito­wanych między ser­werem a klientem. Ma to szczególne zna­czenie w erze pozba­wionych ramek, bogatych graficznie stron WWW.

Już samo ograni­czenie zmian do wycinka strony powoduje wielkie oszczędności. Jeszcze więcej można zyskać przesy­łając nie gotowe frag­menty kodu HTML, lecz czyste dane CSV lub (w mniej­szym stopniu) zbiory danych XML lub JSON. Choć skrypty AJAX inter­pretu­jące takie dane są znacznie bar­dziej skompliko­wane, warto podnieść sobie poziom trud­ności, by zyskać setki kilo­bajtów mniej­szego ruchu.

AJAX oznacza też jednak problemy z zapew­nieniem bezpiecz­nego funkcjono­wania serwisu. Publicznie dostępny kod JavaScript może ułatwiać włamy­waczom rozszyfro­wanie sposobu działania zaplecza serwisu. W najbliższym czasie postaram się napisać więcej o sposobach wali­dacji danych przesy­łanych za pomocą AJAX.

Niezależnie od stopnia skompliko­wania, implemen­tacja AJAX przynosi same zyski. Niedawno uruchomiony uczel­niany serwis WWW służący do rejestracji sekcji projek­towych stwo­rzyłem w całości z wykorzys­taniem AJAX i uzys­kałem w efekcie stronę wygodną w użyciu i błyska­wicznie reagu­jącą na działania użytkow­nika. Doświad­czenia wynie­sione z tego naj­większego dotychczas mojego wdro­żenia AJAX skłaniają, by w przysz­łości jeszcze częściej wykorzys­tywać możli­wości dawane przez tę technologię.


Ponieważ jako laik mogę tylko przytaknąć, wykorzystam okazję do poczęstowania przygotowanym na podobną okazję wątłym dowcipem: Jaki jest popularny nowoczesny zespół webmasterów? Ajax RL.
A ja mam tu swego rodzaju, bardzo specyficzny co prawda, kontrprzykład, w którym Ajax przyczynił się do ograniczenia funkcjonalności popularnego serwisu. Niedawno gógle na polskiej stronie startowej dodał defaultowo ajaksową podpowiadaczkę najczęstszych wyników wyszukiwania, bazującą na stringu wpisanym przez użytkownika w pole tekstowe. (Większość publiczności nawet tego nie zauważyła, bo wygląda to prawie tak samo, jak lista rozwijana przez wyszukiwarkę (np. FF "Pamiętaj dane wprowadzane w formularzach...."). No i powstaje problem dla takich niszowych użytkowników jak ja, co w polską stronę startową gógla chcą wpisywać niemieckie diakrytyki z klawiatury US, za pomocą lewego Alta i klawiatury numerycznej (Np. ß to Alt-225). Kursorek sobie skacze i wybiera co chce, a diakrytyk dopisuje się bezsensownie na końcu przypadkowo wybranego wyrażenia. Przykład – proszę spróbować wpisać "stoß" (uderzenie) czyli "stoAlt-225" na www.google.pl. (Uprzedzając odpowiedź, wiem, że to można wyłączyć, ale sorry, cookiesów od gógla to ja sobie na moich komputerach nie życzę)
Wpisałem :) przy wyłączonym numlocku zachował się nieprawidłowo interpretując 225 jako ruch strzałkami. Przy włączonym numlocku było ok. Według mnie jest to kwestia zgłoszenia do googli problemu, a nie wieszania psów na ajaksie ;)

Choć sam mam zastrzeżenia do ajaxa. Często, gdy mam ograniczony transfer (wolny itp), potrzebując sprawdzić maila, loguję się na google i muszę przełączyć się na uproszczony interfejs, gdyż inaczej skrypty i wszystko ściągają się bardzo długo (aż w końcu operacja jest przerwana) i choć może i potem wszystko działa elegancko, to do tego momentu dojść nie mogę. Ale opcja przejścia w niższy standard jest i to się chwali. I tak też powinno być robione :)

Przypomniało mi się właśnie jak tworzyliśmy potwora w JS, co było pomyłką, ale firma chciała prototyp aplikacji właśnie w JS. Zapis i odczyt z pliku (od groma danych) zajmował 20-40 minut. Część kodu była tworzona w locie, gdyż JS potrafił sobie wtedy z takim kodem lepiej poradzić :) Ale to tylko taka na boku historyjka.
A co się dzieje, gdy się przełączy układ klawiatury na właściwy, zamiast iść na skróty i wpisywać kodów znaków?
Podejrzewam, że problem zniknie.