<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/stylesheets/rss.css" type="text/css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Jaros&#322;aw Zabie&#322;&#322;o - BLOG: Tag ajax</title>
    <link>http://blog.zabiello.com/articles/tag/ajax</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>moje notatki, linki, komentarze</description>
    <item>
      <title>Prototype - oficjalne API i dokumentacja</title>
      <description>&lt;p&gt;Znana biblioteka &lt;strong&gt;Prototype&lt;/strong&gt; doczeka&#322;a si&#281; w&#322;asnej dokumentacji, &lt;span class="caps"&gt;API&lt;/span&gt; oraz bloga: &lt;a href="http://prototypejs.org/"&gt;http://prototypejs.org&lt;/a&gt;. Prototype zapewnia lekkie, eleganckie &lt;span class="caps"&gt;API&lt;/span&gt; &lt;strong&gt;o sk&#322;adni wzorowanej na j&#281;zyku Ruby&lt;/strong&gt;. Ta sk&#322;adnia jest tak &#322;adna, &#380;e niekt&#243;rzy nawet nie widz&#261; potrzeby tworzenia dodatkowych helper&#243;w.  W tej chwili to, moim zdaniem, najlepsza biblioteka do JavaScript i &lt;span class="caps"&gt;AJAX&lt;/span&gt;. &lt;a href="http://rubyonrails.org"&gt;Rails&lt;/a&gt; postawi&#322; zdecydowanie na dobrego konia. &lt;a href="http://pylonshq.com"&gt;Pylons&lt;/a&gt; &amp;#8211; niejako  &amp;#8220;z rozp&#281;du&amp;#8221;, bo skopiowali railsowe helpery &amp;#8211; te&#380;. :)&lt;/p&gt;


	&lt;p&gt;Rozmawia&#322;em niedawno na &lt;span class="caps"&gt;IRC&lt;/span&gt;&amp;#8217;u (irc.freenode#pylons) z developerami &lt;a href="http://pylonshq.com"&gt;Pylons&#243;w&lt;/a&gt;. Maj&#261; rozszerzy&#263; swoje helpery o dodatkowe funkcje, ale nie zaimplementuj&#261; p&#281;tli kt&#243;re s&#261; w Prototype i railsowych &lt;a href="http://www.rubyinside.com/16-rjs-resources-and-tutorials-for-rails-programmers-5.html"&gt;&lt;span class="caps"&gt;RJS&lt;/span&gt;&lt;/a&gt; (szablonach generuj&#261;cych JavaScript w j&#281;z. Ruby) Ograniczeniem jest tu sk&#322;adnia Pythona. Tzn. mo&#380;na by si&#281; pokusi&#263; o tak&#261; implementacj&#281;, ale by&#322;aby ma&#322;o &amp;#8220;pythonic&amp;#8221;, tj. zgodna z filozofi&#261; i czytelno&#347;ci&#261; j&#281;zyka Python. Wi&#281;c raczej na &lt;span class="caps"&gt;RJS&lt;/span&gt; dla Pythona nie ma co liczy&#263;.&lt;/p&gt;


	&lt;p&gt;Wg mnie te wszystkie helpery jakie ma RoR (i &lt;span class="caps"&gt;RJS&lt;/span&gt; w szczeg&#243;lno&#347;ci) to jedna z lepszych cech Rails&#243;w kt&#243;rej brak  u konkurencji. Nie zgodz&#281; si&#281; tu z tymi, co uwa&#380;aj&#261; &#380;e lepiej w og&#243;le nie u&#380;ywa&#263; &#380;adnych helper&#243;w i pisa&#263; w czystym JavaScript.  Mimo &#322;adnej sk&#322;adni Prototype, railsowe helpery i &lt;span class="caps"&gt;RJS&lt;/span&gt; daj&#261; znacznie wi&#281;kszy komfort pracy. Np. we&#378;my tak&#261; konstrukcj&#281; w pliku &lt;span class="caps"&gt;RJS&lt;/span&gt;:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;&lt;span class="ident"&gt;page&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;replace_html&lt;/span&gt; &lt;span class="symbol"&gt;:my_id&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="symbol"&gt;:partial&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;podszablon&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;Co robi powy&#380;sza metoda? Buduje kod JavaScript kt&#243;ry podmienia zawarto&#347;&#263; (innerHTML) dla tagu o id =&amp;#8217;my_id&amp;#8217; zawarto&#347;ci&#261; szablonu &lt;span class="caps"&gt;RHTML&lt;/span&gt; (oczywi&#347;cie jego zawarto&#347;&#263; jest automatycznie &amp;#8220;escape&amp;#8217;owana&amp;#8221;, aby kod JS si&#281; nie wysypa&#322;). Trzeba si&#281; nie&#378;le napracowa&#263; aby uzyska&#263; podobny efekt poza Railsami.&lt;/p&gt;


	&lt;p&gt;Troch&#281; si&#281; dziwi&#281;, &#380;e &lt;a href="http;//djangoproject.com"&gt;Django&lt;/a&gt; my&#347;li o &lt;a href="http://article.gmane.org/gmane.comp.web.dojo.user/3603"&gt;dodaniu Dojo&lt;/a&gt; zamiast Prototype. Mamy w pracy raczej z&#322;e do&#347;wiadczenie z Dojo. Jest ci&#281;&#380;kie, zamotane, trudne do debugowania, modyfikacji. To po cz&#281;&#347;ci efekt podej&#347;cia nastawionego na u&#380;ywanie z&#322;o&#380;onych komponent&#243;w (na&#347;laduj&#261; .NET?) Takie podej&#347;cie (u&#380;ywanie zbyt wysokopoziomowych, z&#322;o&#380;onych komponent&#243;w) generalnie spotyka si&#281; z krytyk&#261; wielu programist&#243;w. Pro&#347;ciej operowa&#263; elastycznym i przejrzystym  kodem (takim jak w Prototype) ni&#380; gotowymi, zamkni&#281;tymi i  trudnymi do debugowania komponentami Dojo.&lt;/p&gt;</description>
      <pubDate>Fri, 19 Jan 2007 16:53:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:f2186883-61cb-4878-ac1c-a526a3b53694</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2007/01/19/prototype-oficjalne-api-i-dokumentacja</link>
      <category>prototype</category>
      <category>ajax</category>
      <category>javascript</category>
      <category>rjs</category>
      <category>rails</category>
      <category>dojo</category>
    </item>
    <item>
      <title>Django i AJAX</title>
      <description>&lt;p&gt;Wszystko wskazuje na to, &#380;e ju&#380; wkr&#243;tce &lt;a href="http://djangoproject.com"&gt;Django&lt;/a&gt; b&#281;dzie posiada&#263; mocne wsparcie dla &lt;span class="caps"&gt;AJAX&lt;/span&gt;&amp;#8217;a. Po namy&#347;le, wybrano bibliotek&#281; &lt;a href="http://dojotoolkit.org/"&gt;Dojo&lt;/a&gt;.
Lider zespo&#322;u developer&#243;w &lt;a href="http://djangoproject.com"&gt;Django&lt;/a&gt; og&#322;osi&#322;, &#380;e w ci&#261;gu nabli&#380;szych tygodni, &lt;a href="http://article.gmane.org/gmane.comp.web.dojo.user/3603"&gt;wsparcie &lt;span class="caps"&gt;AJAX&lt;/span&gt;&amp;#8217;a zostanie dodane do Django 0.92&lt;/a&gt; Przebudowie ulegnie panel administracyjny wzbogacony o nowe mo&#380;liwo&#347;ci biblioteki &lt;a href="http://dojotoolkit.org/"&gt;Dojo&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Sat, 28 Jan 2006 23:13:00 +0100</pubDate>
      <guid isPermaLink="false">urn:uuid:d32ae564-2600-4f70-8a25-ab0ee94187c6</guid>
      <author>Jaros&#322;aw Zabie&#322;&#322;o</author>
      <link>http://blog.zabiello.com/articles/2006/01/28/django-i-ajax</link>
      <category>Django</category>
      <category>django</category>
      <category>ajax</category>
    </item>
  </channel>
</rss>
