Ajax: programowanie dla multimediów
Wraz z nadejściem epoki szybkiego dostępu do Internetu przekazy multimedialne zaczęły coraz częściej ubarwiać statyczną dotąd treść witryn sieciowych. Dziś potencjalny odbiorca naszej strony WWW nie zadowoli się już informacją tekstową, pozbawioną jakichkolwiek audiowizualnych dodatków. Aby sprawnie zarządzać tego typu materiałami, nie trzeba być ekspertem – wystarczy odpowiednio wykorzystać możliwości oferowane przez ogólnodostępne technologie. Połączenie PHP i Ajaksa pozwoli nam na stworzenie interfejsu obsługi wideo i pokazu slajdów, który swoją funkcjonalnością mile zaskoczy wszystkich odwiedzających naszą witrynę.
Gdyby zapytać internautów, która witryna kojarzy im się najbardziej z erą multimedialnej Web 2.0, z pewnością większość z nich odpowiedziałaby: YouTube. Ten serwis nie tylko doskonale wykorzystał nowe technologie, ale także zmienił sposób, w jaki dotychczas postrzegaliśmy media i nasz związek z nimi. Dziś „telewizyjny ekran” YouTube'a stał się dla wielu z nas źródłem wiadomości, które dopiero po pewnym czasie będą miały okazję trafić do „oficjalnego” obiegu. Możliwość dzielenia się użytkowników Internetu przekazem multimedialnym zmienia nieubłaganie świat – trudno więc pozostać jedynie biernym świadkiem tego procesu. W naszym artykule pokażemy, jak wykorzystać asynchroniczny JavaScript i XML (Ajax) dla zbudowania prostej aplikacji sieciowej, obsługującej przekaz wideo i pokaz slajdów. Bazą dla naszych skryptów będzie popularna biblioteka Prototype.js. Udostępnia ona programiście szereg przydatnych obiektów i funkcji, obsługiwanych poprawnie przez wszystkie najważniejsze przeglądarki, co znacznie upraszcza proces projektowania aplikacji sieciowych. Biblioteka udostępniona jest na stronie głównej projektu, wchodzi także w skład innych popularnych frameworków, takich jak na przykład Scriptaculous.
Wybór plików wideo
Zaczniemy od zaprojektowania strony, która będzie udostępniała użytkownikom listę filmów do wyboru. Dzięki wykorzystaniu Ajaksa odbiorcy będą mogli przechodzić od jednego przekazu wideo do drugiego bez konieczności przeładowywania treści strony:
| <html>
<head> <script src="prototype.js"></script> </head> <body> <div id="movieHost"> </div> <div id="movieList"> </div> <script> function setMovie( url ) { $('movieHost').innerHTML = ''; var elEmbed = document.createElement( 'embed' ); elEmbed.src = url; $('movieHost').appendChild( elEmbed ); } new Ajax.Request( 'movies.xml', { method: 'get', onSuccess: function( transport ) { var movieTags = transport.responseXML.getElementsByTagName( 'movie' ); $('movieList').innerHTML = ''; var bFirst = true; for( var b = 0; b < movieTags.length; b++ ) { var url = movieTags[b].getAttribute('url'); var title = movieTags[b].getAttribute('title'); if ( bFirst ) { setMovie( url ); bFirst = false; } var html = '<a href="/javascript:void setMovie(\''+url+'\');">'; html += title+'</a><br/>'; $('movieList').innerHTML += html; } } } ); </script> </body> </html> |
| Listing 1 – kod strony zawierającej listę mediów |
W konstrukcji strony wykorzystaliśmy zalety biblioteki Prototype.js, aby umożliwić skryptowi pobieranie danych z pliku movies.xml, zawierającego podstawowe informacje dotyczące mediów – nazwę pliku i adres. Kiedy zostaną one przesłane, kod wyszuka wszystkie słowa kluczowe (tagi) filmów, korzystając z metody getElementsByTagName(). Następnie z treści każdego tagu zostanie wyodrębniony URL i tytuł materiału. W wypadku pierwszego filmu na liście skrypt od razu rozpocznie prezentację. Dla pozostałych materiałów zostanie utworzony odnośnik, który spełni rolę selektora elementu movieList. Za jego pomocą, wykorzystując funkcję setMovie(), uruchomimy odtwarzanie odpowiedniego pliku wideo. Poprzednia zawartość bloku movieHost zostanie wtedy usunięta i zastąpiona znacznikiem <embed>, zawierającym URL pliku zdefiniowanego w treści listy filmów.
Użycie znacznika <embed> jest najkrótszą drogą do umieszczenia wideo na stronie, może jednak wywoływać konflikty zgodności w wypadku niektórych przeglądarek. Jeżeli chcemy uniknąć tych problemów, powinniśmy użyć zarówno znacznika <object>, jak i <embed> lub zdać się całkowicie na pomoc technologii Flash.
Plik movies.xml, stanowiący źródło danych, jest w naszym przykładzie krótkim zbiorem odnośników do przykładowych filmów. Jego konstrukcja jest tak prosta, że nie wymaga dalszych wyjaśnień:
| <movies>
<movie url="spider.mov" title="Spider" /> <movie url="swing.mov" title="Swing Set" /> <movie url="water.mov" title="Water Splash" /> </movies> |
| Listing 2 – kod w pliku movies.xml |
Kiedy wpiszemy w oknie przeglądarki adres strony, ujrzymy widok podobny do przedstawionego na poniższej ilustracji. W górnej części ekranu znajdziemy okno odtwarzania filmów, a pod nim listę dostępnych plików wideo – kliknięcie któregokolwiek z jej elementów uruchomi pokaz.
Tak zaprojektowany system odtwarzania nie jest jednak z pewnością odpowiedni dla dużych zbiorów wideo. Umieszczenie wielu odnośników na liście znacznie ograniczyłoby bowiem jej czytelność W takim wypadku będziemy musieli skonstruować odpowiedni mechanizm wyszukiwawczy.
«poprzednia 1 2 3 następna »
Komentarze
Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka
(słowa muszą być rozdzielone spacją).
W treści komentarza można używać języka formatowania BBcode.
Popularne
Nazwa padła ofiarą szantażystów, inni polscy hosterzy też zagrożeni?
22
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Premiera Diablo 3 wzbudziła dyskusję na temat gier, które zawsze chcą być online
19
Nowy problem z Windows 8: bootuje się za szybko
10
Amerykańscy rodzice straszeni „e-narkotykami” dostępnymi w Sieci
21
Anonymous upubliczniają 1,7 GB danych wykradzionych Departamentowi Sprawiedliwości USA
11
Blueseed: libertariańska sztuczna wyspa przyciągnęła już ponad sto startupów z całego świata
8
Rewolucja w Firefoksie, nowa łatka czterokrotnie ograniczyła zużycie pamięci
20
Darmowy Internet od Aero2. Jak go zdobyć i jakie są prawdziwe koszta? Instrukcja krok po kroku
11
CVDazzle: makijaż jest w stanie pokonać automatyczne systemy ulicznego monitoringu
3
Programowanie w środowisku Android – wprowadzenie do projektowania aplikacji dla urządzeń mobilnych
17
Ubuntu 12.04 LTS już dostępny: stabilna dystrybucja na następne pięć lat?
28
Zostań webmasterem polskiego rządu, zarobisz na komfortowe życie dla siebie i swojej rodziny
33
Społeczność
Doniek Szkoda że strona z demo nie działa - non stop się przeładowuje
bartez Niech zaczną jeszcze bardziej ograniczać programistów, to zdziwią się ilu...
Dave Smith Jestem Pastor Dave Smith prywatny pożyczkodawca pieniądze, z czego ponad...
marcusm Fajna reklama produktu za 500 zł
rza a to starsze aplikacje nie będą działać i kompilacja pod Windows SDK 7.1...
Krzaczor @Jakub Szymański: Możesz zalinkować do opisów jakichś polskich przypadków...
Krzaczor Ale oprogramowanie skompilowane dla Windows 7 ruszy przecież na ósemce...
- Najdmen.pl: Konta www z wyłączonym licznikiem transferu od IONIC.pl (1)
- 2BE.PL: [Oferta] Promocja jak złoto w 2BE.PL (1)
- gardius: Dobra hurtownia sportowa (1)
- gardius: Tanie książki gdzie warto kupować? (1)
- Najdmen.pl: PROMOCJA, 500 DOMEN .EU ZA 1 PLN NETTO ! (1)
- VMLine: [Oferta] Serwery VPS Xen-HVM/OpenVZ z darmową administracją (2)
- Marek: Generowanie PDFa (2)
Polecane książki
Praca
Czytaj Webhosting
Chcesz być na bieżąco z naszymi informacjami? Zapisz się na Newsletter.
Zarejestruj domenę
Sprawdź dostępność swojej domeny:
| .pl: | 0 zł | .com: | 19.90 zł | |
|---|---|---|---|---|
| .com.pl: | 0 zł | .eu: | 19.90 zł |









