<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zeznania programisty &#187; AJAX</title>
	<atom:link href="http://www.jakubiak.eu/category/programowanie/javascript/ajax/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jakubiak.eu</link>
	<description>Moje przeżycia związane z: FLEX, JEE, EJB, JSF, FreeBSD, PostgreSQL i PHP i Windows ;)</description>
	<lastBuildDate>Sat, 12 Mar 2011 13:00:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Phobos</title>
		<link>http://www.jakubiak.eu/2007/03/phobos.html</link>
		<comments>http://www.jakubiak.eu/2007/03/phobos.html#comments</comments>
		<pubDate>Wed, 14 Mar 2007 21:30:00 +0000</pubDate>
		<dc:creator>Antoni Jakubiak</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[JPA]]></category>

		<guid isPermaLink="false">http://www.jakubiak.info/2007/03/phobos.html</guid>
		<description><![CDATA[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 &#8211; JavaScript. To dziwo napisane jest w Javie, wspiera AJAX a nawet Java Persistence Api (JPA) &#8211; taki standard dla mapowania obiektowo relacyjnego. Ma też swój własny język dla szablonów [...]]]></description>
			<content:encoded><![CDATA[O w mordę, czegoś takiego nigdy bym sobie wcześniej nie wyobrażał. <a href="https://phobos.dev.java.net/" onclick="pageTracker._trackPageview('/outgoing/phobos.dev.java.net/?referer=');">Phobos</a> to framwork do tworzenia aplikacji WWW, gdzie językiem wykonywanym po stronie serwera jest &#8211; JavaScript. To dziwo napisane jest w Javie, wspiera <a href="http://pl.wikipedia.org/wiki/AJAX" onclick="pageTracker._trackPageview('/outgoing/pl.wikipedia.org/wiki/AJAX?referer=');">AJAX</a> a nawet <a href="http://java.sun.com/javaee/overview/faq/persistence.jsp" onclick="pageTracker._trackPageview('/outgoing/java.sun.com/javaee/overview/faq/persistence.jsp?referer=');">Java Persistence Api (JPA)</a> &#8211; taki standard dla mapowania obiektowo relacyjnego. Ma też swój własny język dla szablonów HTML (coś jakby <a href="http://smarty.php.net/" onclick="pageTracker._trackPageview('/outgoing/smarty.php.net/?referer=');">Smarty</a>). 
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 &#8211; EJS &#8211; który na pierwszy rzut oka przypomina JSP. Phobos mnie zainteresował.]]></content:encoded>
			<wfw:commentRss>http://www.jakubiak.eu/2007/03/phobos.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Domain AJAX</title>
		<link>http://www.jakubiak.eu/2007/02/cross-domain-ajax.html</link>
		<comments>http://www.jakubiak.eu/2007/02/cross-domain-ajax.html#comments</comments>
		<pubDate>Tue, 27 Feb 2007 14:30:00 +0000</pubDate>
		<dc:creator>Antoni Jakubiak</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.jakubiak.info/2007/02/cross-domain-ajax.html</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[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 &#8211; przykładem jest <a href="http://code.google.com/apis/ajaxsearch/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/apis/ajaxsearch/?referer=');">Google AJAX Search Api</a>. Dane z różnych serwerów WWW można miksować, każąc przeglądarce WWW wykonać nowy skrypt JavaScript, np.: <code>document.write</code>. Ja potrzebowałem trochę bardziej zaawansowanego rozwiązania, które umożliwiło by mi między innymi.:<ul>
<li>Wykonanie procedury po zakończeniu pobierania</li>
<li>Grupowanie pobieranych skryptów i wykonaniu procedury po zakończeniu pobierania</li>.
<li>No i oczywiście pracę z różnymi domenami WWW</li>
</ul>
Postanowiłem więc zmodyfikować moją ulubioną bibliotekę <a href="http://advajax.anakin.us/" onclick="pageTracker._trackPageview('/outgoing/advajax.anakin.us/?referer=');">AdjAJAX</a> &#8211; tak aby zamiast pobierania danych wykonywała skrypt z innej domeny. Sprawdziło się. Powstała biblioteka: <a href="http://code.google.com/p/cross-domain-ajax/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/cross-domain-ajax/?referer=');">Cross Domain AJAX</a> &#8211; 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ę &#8211; Cross Domain AJAX &#8211; 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 &#8211; jednak jest na prawdę fajne.
Zapraszam do projektu: <a href="http://code.google.com/p/cross-domain-ajax/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/cross-domain-ajax/?referer=');">Cross Domain AJAX</a>.]]></content:encoded>
			<wfw:commentRss>http://www.jakubiak.eu/2007/02/cross-domain-ajax.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flirt z XMLHttpRequest</title>
		<link>http://www.jakubiak.eu/2007/02/flirt-z-xmlhttprequest.html</link>
		<comments>http://www.jakubiak.eu/2007/02/flirt-z-xmlhttprequest.html#comments</comments>
		<pubDate>Wed, 14 Feb 2007 09:06:00 +0000</pubDate>
		<dc:creator>Antoni Jakubiak</dc:creator>
				<category><![CDATA[AJAX]]></category>

		<guid isPermaLink="false">http://www.jakubiak.info/2007/02/flirt-z-xmlhttprequest.html</guid>
		<description><![CDATA[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 [...]]]></description>
			<content:encoded><![CDATA[Witam!

Od pewnego czasu interesuję się <a href="http://pl.wikipedia.org/wiki/AJAX" onclick="pageTracker._trackPageview('/outgoing/pl.wikipedia.org/wiki/AJAX?referer=');">AJAX</a> a dziś chciałbym ponarzekać na <a href="http://pl.wikipedia.org/wiki/XMLHTTP" onclick="pageTracker._trackPageview('/outgoing/pl.wikipedia.org/wiki/XMLHTTP?referer=');">XMLHttpRequest</a>. 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 <a href="http://code.google.com/apis/ajaxsearch/" onclick="pageTracker._trackPageview('/outgoing/code.google.com/apis/ajaxsearch/?referer=');">Google AJAX Search Api</a>? Używają mniej więcej czegoś takiego:<pre>var s = document.createElement("script");
s.src="http://www.serwer.wsieci/skrypt.js?parametr1=wartosc1";
document.getElementsByTagName("head").item(0).appendChild(s);
</pre>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.]]></content:encoded>
			<wfw:commentRss>http://www.jakubiak.eu/2007/02/flirt-z-xmlhttprequest.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

