Archive

Archive for the ‘AJAX’ Category

Phobos

March 14th, 2007 No comments
O w mordę, czegoś takiego nigdy bym sobie wcześniej nie wyobrażał. Phobos to framwork do tworzenia aplikacji WWW, gdzie językiem wykonywanym po stronie serwera jest – JavaScript. To dziwo napisane jest w Javie, wspiera AJAX a nawet Java Persistence Api (JPA) – taki standard dla mapowania obiektowo relacyjnego. Ma też swój własny język dla szablonów HTML (coś jakby Smarty). Pisząc aplikację w Phobos możemy to zrobić na przykład tak. Logikę biznesową możemy napisać w Javie wykorzystując JPA. Kontroler w JavaScripcie (wykonywanym na serwerze) a widok w specjalnym języku – EJS – który na pierwszy rzut oka przypomina JSP. Phobos mnie zainteresował.
Categories: AJAX, Java, JavaScript, JPA Tags:

Cross Domain AJAX

February 27th, 2007 4 comments
Zdarzyło mi się, że potrzebowałem AJAX, gdzie serwer dostarczający dane będzie innym serwerem niż ten, z którego ładowana jest strona internetowa. Model DOM przeglądarek internetowych, w tym obiekt XMLHttpRequest będący podstawą wielu implementacji AJAX, ma zabronione operowanie na danych pobieranych z różnych domen (z różnych serwerów WWW). Na szczęście, miksowanie danych z pobieranych z różnych serwerów WWW jest możliwe – przykładem jest Google AJAX Search Api. Dane z różnych serwerów WWW można miksować, każąc przeglądarce WWW wykonać nowy skrypt JavaScript, np.: document.write. Ja potrzebowałem trochę bardziej zaawansowanego rozwiązania, które umożliwiło by mi między innymi.:
  • Wykonanie procedury po zakończeniu pobierania
  • Grupowanie pobieranych skryptów i wykonaniu procedury po zakończeniu pobierania
  • .
  • No i oczywiście pracę z różnymi domenami WWW
Postanowiłem więc zmodyfikować moją ulubioną bibliotekę AdjAJAX – tak aby zamiast pobierania danych wykonywała skrypt z innej domeny. Sprawdziło się. Powstała biblioteka: Cross Domain AJAX – którą opublikowałem na licencji LGPL, zgodnie z licencją AdvAJAX. Biblioteka Cross Domain AJAX działa prawie tak samo jak AdvAJAX, z tym że zamiast pobierać dane (XML, Text), zmusza przeglądarkę do wykonania JavaScript. Jak tego można używać? Wyobraźmy sobie, że na serwerze A mamy dane, które chcemy udostępnić stronie WWW znajdującej się na serwerze B. Aby tego dokonać na serwer A ładujemy program, który po wykonaniu się zwróci nam kod JavaScript zostawiający w globalnej przestrzeni nazwy przeglądarki obiekt z danymi. Aplikacja z serwera B potrzebuje tych danych. Uruchamia ona moją bibliotekę – Cross Domain AJAX – która ładuje skrypt z serwera A. Po załadowaniu danych z serwera A sterowanie może być przekazane do dowolnej funkcji, na przykład rysującej fontannę. Brzmi to skomplikowanie i może się wydawać zbyteczne – jednak jest na prawdę fajne. Zapraszam do projektu: Cross Domain AJAX.
Categories: AJAX, JavaScript Tags:

Flirt z XMLHttpRequest

February 14th, 2007 No comments
Witam! Od pewnego czasu interesuję się AJAX a dziś chciałbym ponarzekać na XMLHttpRequest. XMLHttpRequest jest obiektem, który kojarzy się z czarną robotą, który kryje się pod większością bibliotek do AJAX. XMLHttpRequest to obiekt w JavaScripcie który obsługuje żądania POST, GET, HEAD i umożliwia pobierania danych (na przykład XML) z serwera. Fajne! Niestety, tylko z tego serwera z którego uruchomiona jest strona. Można to rozwiązać, instalując program proxy u klienta, jednak instalowania aplikacji na serwerze klienta z punktu widzenia usługodawcy nie zawsze jest możliwe. Hmm, w takim wypadku jak działa Google AJAX Search Api? Używają mniej więcej czegoś takiego:
var s = document.createElement("script");
s.src="http://www.serwer.wsieci/skrypt.js?parametr1=wartosc1";
document.getElementsByTagName("head").item(0).appendChild(s);
Googlowcy nie używają XMLHttpRequest ponieważ na stronie klienta nie mogli by wczytać danych ze swojego serwera. XML i DOM przeszkadza, gdy aplikacja AJAX ma być uruchamiana na wielu domenach. Potrzebne jest wtedy prymitywne rozwiązanie oparte na poczciwym JavaScript: document.write wystarczy by pisać AJAX.
Categories: AJAX Tags: