10 marca 2007
Premiera: AJAXowy chat na każdą stronę
22:01:26Kategorie: Codzienność, Informatyka, Techblog, Twórczość, Wszystkie
Po ok. tygodniu pisania i testowania kodu, mogę wreszcie udostępnić wersję 0.9 aplikacji będącej chatem AJAXowym.

Features, czyli co mną kierowało:
- Internauta może za pomocą kliknięcia rozwinąć lub schować chat - nie przeszkadza mu w przeglądaniu witryny, będąc domyślnie schowanym.
- Internatura może sprawnie poruszać się po witrynie mając rozwinięty chat: nie jest to pop-up, lecz stanowi integralną część strony, będąc wraz z nią przesuwalnym suwakami. Sprawne poruszanie oznacza także, że przy przejściu do innej podstrony, chat zostanie automatycznie otwarty.
- Chat jest estetyczny: nie zawiera żadnych grafik, jednak świetnie komponuje się z witrynami społecznościowymi - głównie forami, czy stronami hobbystycznymi. Adresy są automatycznie zamieniane na odnośniki. Przewijanie okna jest podobne do znanego z Gmaila: chat sprawdza, czy użytkownik nie czyta wcześniejszych wiadomości, zanim przesunie się, pokazując nową treść. Dodatkowo dodany jest przyjemny dla oka efekt znikania i pojawiania się chata.
- Z punktu widzenia developera, stanowi w miarę kompaktowy skrypt: całość zajmuje 31KB (po usunięciu niektórych zbędnych części pakietu Script.Aculo.Us). Oparty jest na Prototype i MySQL, a kod jest na tyle przejrzysty, że zbędne są komentarze. Naturalnie, jest odporny na XSS i tego typu atrakcje.
- Skrypt nie generuje dużego obciążenia: aktualizuje treść jedynie przy rozwiniętym oknie, z czasem ustawionym domyślnie na 2 sekundy. Pobiera generowany przy wysyłaniu wiadomości plik stały z odpowiednimi nagłówkami, które gwarantują korzystanie z cache przeglądarki w przypadku braku zmiany treści.
- Działa bez zarzutu pod przeglądarkami: Firefox 1.5.0.4, IE 6.0, Opera 8.52. Pod innymi nie sprawdzałem, jednak powinien chodzić pod wszystkim, co jest obsługiwane przez script.aculo.us i prototype. Oczywiście trzeba być przygotowanym na błędną interpretację CSS - nie przykładałem do tego wielkiej wagi, ponieważ większość osób i tak stworzy własny szablon
Wszystko spakowałem haxorskim winrarem. Do pobrania: wersja 0.9. Licencja... naturalnie darmowa do zastosowań niekomercyjnych. W przypadku komercyjnych - jakaś symboliczna opłata ;) Wymagam jedynie, by zostawić w okienku chata odnośnik do http://ajax.eldoras.com. Demo działającego skryptu można obejrzeć na garfiku.
Instalacja:
- Rozpakowujemy archiwum, modyfikujemy w pliku newmsg.php dane do połączenia z bazą danych (login, hasło, nazwa bazy). Całość wgrywamy na serwer.
- Używamy db.sql do stworzenia tabel w bazie danych MySQL.
- Do każdej strony, na której chcemy mieć chat, dołączamy w nagłówku 5 plików, jak widać w pliku sample_index.php (1 CSS i 4 skrypty, przy czym fixed.js to hack dla IE umożliwiający uzyskanie pozycji typu fixed). W treści strony (może być zaraz po znaczniku body) dodajemy diva "openchat" oraz includujemy chat.php (przykład w sample_index.php).
- Opcjonalnie możemy zmodyfikować arkusz styli chat.css do naszych potrzeb. Nie zalecam zmiany identyfikatorów CSS - są do nich przypisane funkcje w JavaScript.
Wszelkie uwagi mile widziane, zmiany można nadsyłać na e-mail. Ufam, że będzie to coś, co rozejdzie się po necie i zostanie udoskonalone - mój wkład w open source community :)
Community jednak także mi trochę pomogło. Główne podziękowania należą się Patrysowi za cenne uwagi i praktyczną pomoc oraz Riddle'owi za uświadomienie mnie odnośnie zagadnień XHT cross-subdomain :)
- Dodaj lub śledź
komentarze - Kategorie wpisu: Codzienność, Informatyka, Techblog, Twórczość, Wszystkie
- Trackback do wpisu (?)
- Strona główna

- ← AJAX i PHP na Joggerze (poprzedni wpis)
- → Mariah Carey - I Can't Live (If Living Is Without You) (następny wpis)









10 marca 2007 o 23:23:17 | Link do tego komentarza
coś nie działa download
10 marca 2007 o 23:54:07 | Link do tego komentarza
Naprawione. Dzieki :)
11 marca 2007 o 01:20:56 | Link do tego komentarza
Po co za każdym razem pobierać kod jeżeli nic się nie zmieniało ? Sprawdzaj jakąś prostą sumę kontrolną to będzie efektywniejsze.
11 marca 2007 o 10:37:19 | Link do tego komentarza
Od tego są nagłówki w getchat.php. Przeglądarka ma się zająć wgrywaniem cache w takim wypadku.
11 marca 2007 o 13:58:56 | Link do tego komentarza
U mnie Firefox 2.0.0.2 co 3 sekundy wywołuje stronkę i otrzymuje nagłówek:
Cache-Control: no-cache, must-revalidate
I tak w kółko, obojętnie czy coś się dzieje czy nie.
14 marca 2007 o 11:00:44 | Link do tego komentarza
Świetny chat! Szkoda tylko, że działa tylko z MySQL.
14 marca 2007 o 11:01:32 | Link do tego komentarza
Tam są dwie funkcje na krzyż, można samemu podmienić na odpowiednie dla innej bazy lub zaimplementować np. PDO.
31 lipca 2007 o 21:34:58 | Link do tego komentarza
hej takie pytanie: czy jeśli stosuje skrypt w celach niekomercyjnych to mogę usunąć link?
31 lipca 2007 o 21:44:47 | Link do tego komentarza
Zalezy jaki projekt... Daj linka, ocenie. Jak szczytny cel, to na pewno :)
Ale gwoli scislosci... jak ktos ma adsense na stronie to niech nie wciska ze jest niekomercyjna... bo tak wiekszosc webmasterow sobie gada.
31 lipca 2007 o 21:55:24 | Link do tego komentarza
www.dragonslair.ovh.org , nie ma adsense ani nic w tym guscie
31 lipca 2007 o 21:56:56 | Link do tego komentarza
To smialo :)
31 lipca 2007 o 21:59:46 | Link do tego komentarza
dzięki! możliwe, że wkrótce skorzystam ze skryptu:)
09 sierpnia 2007 o 15:14:13 | Link do tego komentarza
możliwe że to tylko u mnie tak wygląda jednak jak się przegląda demo chata na http://garfik.eldoras.com/ to pod IE lista rozwijana służąca do oceny paska wyskakuje ponad okienko chata