<?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>LoSoft Blog &#187; Web</title>
	<atom:link href="http://www.losoft.org/blog/category/web/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.losoft.org/blog</link>
	<description>Linux, Mac OS, programowanie ...</description>
	<lastBuildDate>Fri, 03 Dec 2010 20:29:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Macbook i problemy z siecia WiFi</title>
		<link>http://www.losoft.org/blog/2010/07/macbook-i-problemy-z-siecia-wifi/</link>
		<comments>http://www.losoft.org/blog/2010/07/macbook-i-problemy-z-siecia-wifi/#comments</comments>
		<pubDate>Thu, 15 Jul 2010 18:58:55 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[Mac]]></category>
		<category><![CDATA[Net]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[macbook]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=2379</guid>
		<description><![CDATA[Po tygodniu walczenia z konfiguracja sieci wifi w macbooku, opadly mi rece, gdy okazalo sie, ze ciagle zrywanie polaczenia jest kwestia sily sygnalu access pointa. Jak zwykle przypadek sprawil, ze &#8220;naprawilo sie&#8221; samo &#8211; prawie &#8211; trzeba bylo polazic po mieszkaniu. Wiec, rozwiazanie problemu zrywania polaczenia sieci wifi w macu. 1. Na poczatek ustawiamy najslabsza [...]]]></description>
			<content:encoded><![CDATA[<p>Po tygodniu walczenia z konfiguracja sieci wifi w macbooku, opadly mi rece, gdy okazalo sie, ze ciagle zrywanie polaczenia jest kwestia sily sygnalu access pointa. Jak zwykle przypadek sprawil, ze &#8220;naprawilo sie&#8221; samo &#8211; prawie &#8211; trzeba bylo polazic po mieszkaniu.</p>
<p>Wiec, rozwiazanie problemu zrywania polaczenia sieci wifi w macu.</p>
<p>1. Na poczatek ustawiamy najslabsza mozliwa sile transmisji (Transmit Power) access pointa w naszym routerze (sekcja Wireless).<br />
2. Odpalamy konsole na macu. <span class="notranslate code">Programy->Narzedzia->Terminal</span> i zarzucamy haselko</p>
<pre class="notranslate bash">
czlowiek@maszyna:~$ <span class="command">ping www.google.com</span>
PING www.l.google.com (209.85.135.103): 56 data bytes
64 bytes from 209.85.135.103: icmp_seq=0 ttl=50 time=90.361 ms
64 bytes from 209.85.135.103: icmp_seq=2 ttl=50 time=91.233 ms
64 bytes from 209.85.135.103: icmp_seq=3 ttl=50 time=82.742 ms
...
<span class="command">Request timeout for icmp_seq 15
Request timeout for icmp_seq 16
Request timeout for icmp_seq 17</span>
...
64 bytes from 209.85.135.103: icmp_seq=17 ttl=50 time=850.113 ms
64 bytes from 209.85.135.103: icmp_seq=18 ttl=50 time=86.281 ms
64 bytes from 209.85.135.103: icmp_seq=19 ttl=50 time=77.392 ms
64 bytes from 209.85.135.103: icmp_seq=20 ttl=50 time=298.949 ms
64 bytes from 209.85.135.103: icmp_seq=21 ttl=50 time=374.277 ms
</pre>
<p>im mniej takich <span class="notranslate code">Request timeout&#8217;ow</span>, tym lepiej <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> , lazimy, szukamy optymalnego sygnalu bez zaklocen, zmieniamy sile transmisji, bawimy sie antena i takie tam, a po 15 minutach uzyskamy satysfakcjonujaca nas wspolprace maca z nasza siecia WiFi.</p>
<p>Dziwna sprawa z tym mac&#8217;iem, poniewaz na htc g1 i lapku z linuxem dziala wysmienicie. Az chce sie powiedziec: a na linuxie dziala <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2010/07/macbook-i-problemy-z-siecia-wifi/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XML-RPC, wylaczenie gzipa w Apache dla IE6</title>
		<link>http://www.losoft.org/blog/2010/03/xml-rpc-wylaczenie-gzipa-w-apache-dla-ie6/</link>
		<comments>http://www.losoft.org/blog/2010/03/xml-rpc-wylaczenie-gzipa-w-apache-dla-ie6/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 20:18:02 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[Flex/Air]]></category>
		<category><![CDATA[Konfiguracja]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[ajp]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[komunikacja]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=2200</guid>
		<description><![CDATA[W aplikacjach klient-serwer z konektem po XML-RPC, natrafimy na problem komunikacji, gdy klient uzywa przegladarki IE6. Wiec. Jezeli gzip&#8217;em sterujemy bezposrednio z Javki to przy generowaniu response musimy go wylaczyc. Jezeli Tomcat nakryty jest Apachem to nastepujaca dyrektywa jest konieczna aby klient stworzony, na przyklad we Flashu mogl poprawnie odebrac odpowiedz. BrowserMatch \bMSIE\s6 no-gzip gzip-only-text/html [...]]]></description>
			<content:encoded><![CDATA[<p>W aplikacjach klient-serwer z konektem po XML-RPC, natrafimy na problem komunikacji, gdy klient uzywa przegladarki IE6. Wiec. Jezeli gzip&#8217;em sterujemy bezposrednio z Javki to przy generowaniu response musimy go wylaczyc. Jezeli Tomcat nakryty jest Apachem to nastepujaca dyrektywa jest konieczna aby klient stworzony, na przyklad we Flashu mogl poprawnie odebrac odpowiedz.</p>
<pre class="notranslate write-code">
BrowserMatch \bMSIE\s6 no-gzip gzip-only-text/html
</pre>
<p>Oczywiscie wlaczamy mod deflate w Apache</p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2010/03/xml-rpc-wylaczenie-gzipa-w-apache-dla-ie6/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JS Call Later</title>
		<link>http://www.losoft.org/blog/2010/03/js-call-later/</link>
		<comments>http://www.losoft.org/blog/2010/03/js-call-later/#comments</comments>
		<pubDate>Fri, 19 Mar 2010 19:49:03 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[JS/AJAX]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=2186</guid>
		<description><![CDATA[Taki prosty skrypcik, umozliwiajacy wywolanie metody JavaScript z czasowym opoznieniem. Przydatne gdy chcemy na przyklad wyswietlic plywajacego diva 5 sekund po zaladowaniu strony, albo ukryc elementy widoku po 5 sekundach Utworzmy klase obiektu dbajacego o wywolanie okreslonej metody po zadanym czasie a nastepnie sie zniszczy loCallTimer = function&#40;id, func, args, time&#41; &#123; if &#40;typeof&#40;id&#41; == [...]]]></description>
			<content:encoded><![CDATA[<p>Taki prosty skrypcik, umozliwiajacy wywolanie metody JavaScript z czasowym opoznieniem. Przydatne gdy chcemy na przyklad wyswietlic plywajacego diva 5 sekund po zaladowaniu strony, albo ukryc elementy widoku po 5 sekundach  <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Utworzmy klase obiektu dbajacego o wywolanie okreslonej metody po zadanym czasie a nastepnie sie zniszczy</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">loCallTimer <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>id<span style="color: #339933;">,</span> func<span style="color: #339933;">,</span> args<span style="color: #339933;">,</span> time<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;undefined&quot;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span> <span style="color: #339933;">=</span> id<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">func</span> <span style="color: #339933;">=</span> func <span style="color: #339933;">||</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">args</span> <span style="color: #339933;">=</span> args <span style="color: #339933;">||</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">time</span> <span style="color: #339933;">=</span> time <span style="color: #339933;">||</span> <span style="color: #CC0000;">1500</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">timer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loCallTimer.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">suicide</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">stopTimer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;window.ct_&quot;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; = null;&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loCallTimer.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">onTime</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">args</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;undefined&quot;</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">args</span> <span style="color: #339933;">==</span> <span style="color: #003366; font-weight: bold;">null</span> <span style="color: #339933;">||</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">args</span>.<span style="color: #660066;">length</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">func</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">func</span>.<span style="color: #660066;">apply</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">func</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">args</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">suicide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loCallTimer.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">runTimer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">stopTimer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">timer</span> <span style="color: #339933;">=</span> window.<span style="color: #660066;">setTimeout</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;window.ct_&quot;</span> <span style="color: #339933;">+</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">id</span> <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;.onTime();&quot;</span><span style="color: #339933;">,</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">time</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
loCallTimer.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">stopTimer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">timer</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		window.<span style="color: #660066;">clearTimeout</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">timer</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">timer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Wyzwalacz</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> callLater<span style="color: #009900;">&#40;</span>func<span style="color: #339933;">,</span> args<span style="color: #339933;">,</span> time<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> id <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #003366; font-weight: bold;">var</span> ct <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;window.ct_&quot;</span> <span style="color: #339933;">+</span> id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot; = new loCallTimer(&quot;</span> <span style="color: #339933;">+</span> id <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;);&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    ct.<span style="color: #660066;">func</span> <span style="color: #339933;">=</span> func<span style="color: #339933;">;</span>
    ct.<span style="color: #660066;">args</span> <span style="color: #339933;">=</span> args<span style="color: #339933;">;</span>
    ct.<span style="color: #660066;">time</span> <span style="color: #339933;">=</span> time<span style="color: #339933;">;</span>
    ct.<span style="color: #660066;">runTimer</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">return</span> ct<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Testujemy<br />
<span id="more-2186"></span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> oblicz<span style="color: #009900;">&#40;</span>msg<span style="color: #339933;">,</span> a<span style="color: #339933;">,</span> b<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>msg <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span>a <span style="color: #339933;">+</span> b<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
callLater<span style="color: #009900;">&#40;</span>oblicz<span style="color: #339933;">,</span> <span style="color: #009900;">&#91;</span><span style="color: #3366CC;">&quot;Sorki, troche to trwalo ;). Suma wynosi: &quot;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">,</span> <span style="color: #CC0000;">3000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2010/03/js-call-later/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JS dziedziczenie i override&#8217;y</title>
		<link>http://www.losoft.org/blog/2010/03/js-dziedziczenie-i-overridey/</link>
		<comments>http://www.losoft.org/blog/2010/03/js-dziedziczenie-i-overridey/#comments</comments>
		<pubDate>Sat, 06 Mar 2010 22:59:29 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[JS/AJAX]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[dziedziczenie]]></category>
		<category><![CDATA[JS]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=2132</guid>
		<description><![CDATA[Niby nie ma formalnie klas w JS, jednak mozemy stworzyc cos co mimo braku podzialu na obiekty prywatne, publiczne itd, bedzie wygladalo na klasy. Na poczatek stworzmy nasza &#8220;klase&#8221; bazowa // konstruktor klasy BaseClass = function&#40;name&#41; &#123; this.name = name &#124;&#124; &#34;obj_&#34; + &#40;new Date&#40;&#41;&#41;.getTime&#40;&#41;; &#125;; &#160; BaseClass.prototype.className = &#34;BaseClass&#34;; &#160; // instancja klasy BaseClass [...]]]></description>
			<content:encoded><![CDATA[<p>Niby nie ma formalnie klas w JS, jednak mozemy stworzyc cos co mimo braku podzialu na obiekty prywatne, publiczne itd, bedzie wygladalo na klasy. </p>
<p>Na poczatek stworzmy nasza &#8220;klase&#8221; bazowa</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// konstruktor klasy</span>
BaseClass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #000066;">name</span> <span style="color: #339933;">||</span> <span style="color: #3366CC;">&quot;obj_&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
BaseClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;BaseClass&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// instancja klasy BaseClass</span>
<span style="color: #003366; font-weight: bold;">var</span> instanceOfBaseClass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> BaseClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>w ten sposob mamy obiekt posiadajacy dwie wlasnosci <span class="notranslate code">name</span> i <span class="notranslate code">className</span>. Ta druga nie bedzie dziedziczona bezposrednio.</p>
<p>A teraz dziedziczenie.</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">DerivativeClass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #003366; font-weight: bold;">super</span> <span style="color: #339933;">=</span> BaseClass<span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #003366; font-weight: bold;">super</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
DerivativeClass.<span style="color: #660066;">prototype</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> BaseClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
DerivativeClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;DerivativeClass&quot;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #003366; font-weight: bold;">var</span> instanceOfDerivativeClass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> DerivativeClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Po tym zabiegu instancja klasy <span class="notranslate code">DerivativeClass</span> bedzie wygladac mniej wiecej tak</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">instanceOfDerivativeClass
	className <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;DerivativeClass&quot;</span>
	<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;obj_1267912571913&quot;</span>
		<span style="color: #003366; font-weight: bold;">super</span>
			prototype
				className <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;BaseClass&quot;</span></pre></div></div>

<p>Dzidziczenie? Jak najbardziej <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Teraz sprobujmy nadpisac funkcje bazowa <span class="notranslate code">init</span>, na poczatek dodajmy ja<br />
<span id="more-2132"></span></p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">BaseClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">init</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialized</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>i do konstruktora</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialized</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span></pre></div></div>

<p>tak docelowo powinna wygladac klasa bazowa</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">BaseClass <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #000066;">name</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #000066;">name</span> <span style="color: #339933;">=</span> <span style="color: #000066;">name</span> <span style="color: #339933;">||</span> <span style="color: #3366CC;">&quot;obj_&quot;</span> <span style="color: #339933;">+</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">new</span> Date<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getTime</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialized</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
BaseClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">className</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;BaseClass&quot;</span><span style="color: #339933;">;</span>
&nbsp;
BaseClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">init</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">initialized</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Teraz w obiekcie <span class="notranslate code">DerivativeClass</span> nadpiszemy ja w nastepujacy sposob</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">DerivativeClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">superInit</span> <span style="color: #339933;">=</span> DerivativeClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">init</span><span style="color: #339933;">;</span>
DerivativeClass.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">init</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// do something</span>
	<span style="color: #006600; font-style: italic;">// a na koncu wywolaj</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">superInit</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Dziala? Jasne, ze tak:</p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2010/03/js-dziedziczenie-i-overridey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Przerejestrowanie obiektow JS po zaladowaniu kontentu AJAX&#8217;em</title>
		<link>http://www.losoft.org/blog/2010/02/przerejestrowanie-obiektow-js-po-zaladowaniu-kontentu-ajaxem/</link>
		<comments>http://www.losoft.org/blog/2010/02/przerejestrowanie-obiektow-js-po-zaladowaniu-kontentu-ajaxem/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 16:46:52 +0000</pubDate>
		<dc:creator>lookout</dc:creator>
				<category><![CDATA[JS/AJAX]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[DHTML]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.losoft.org/blog/?p=2096</guid>
		<description><![CDATA[Niewielka sprawa, jednak zabrala mi troche czasu. Ten przypadek wymagal dociagania skryptow JS w zaleznosci od zaladowanego kontentu (On Demand JS) lecz dostarczane obiekty mialy nazywac sie identycznie. Wazne bylo, aby metoda getAnswer obiektu Question zwracala odpowiednio sformatowane dane, w zaleznosci od wyswietlonego kontentu. Silnik ladowany byl po wejsciu na strone wraz z zawartoscia zawierajaca [...]]]></description>
			<content:encoded><![CDATA[<p>Niewielka sprawa, jednak zabrala mi troche czasu. Ten przypadek wymagal dociagania skryptow JS w zaleznosci od zaladowanego kontentu (On Demand JS) lecz dostarczane obiekty mialy nazywac sie identycznie. Wazne bylo, aby metoda <span class="notranslate code">getAnswer</span> obiektu <span class="notranslate code">Question</span> zwracala odpowiednio sformatowane dane, w zaleznosci od wyswietlonego kontentu. Silnik ladowany byl po wejsciu na strone wraz z zawartoscia zawierajaca obiekty JS, logiczne wiec, ze parser je wczytal i zarejestrowal. Wymienny kontent zawieral override&#8217;y zaladowanych obiektow, ktore niestety nie rejestrowaly sie automatycznie.</p>
<p>Mamy wiec cos podobnego</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;">Question <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">answer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#123;</span> body <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span>
&nbsp;
Question.<span style="color: #660066;">prototype</span>.<span style="color: #660066;">getAnswer</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">answer</span> <span style="color: #339933;">!=</span> <span style="color: #003366; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">this</span>.<span style="color: #660066;">answer</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span> <span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #009900;">&#123;</span> body <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>w kazdej dynamicznie dostarczanej zawartosci z ta roznica, ze <span class="notranslate code">{ body }</span> roznie formatowalo dane</p>
<p>Aby dzialalo to poprawnie, nalezy po wczytaniu kontentu AJAX&#8217;em zarejestrowac wczytane obiekty, a mozna to zrobic tak</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> reloadScripts<span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// pobieramy obiekt zawierajacy override'y</span>
	<span style="color: #003366; font-weight: bold;">var</span> obj <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>obj<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #006600; font-style: italic;">// wyciagamy tagi potencjalnie zawierajace skrypty JS</span>
		<span style="color: #003366; font-weight: bold;">var</span> scripts <span style="color: #339933;">=</span> obj.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;script&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> i <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span> i <span style="color: #339933;">&lt;</span> scripts.<span style="color: #660066;">length</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			script <span style="color: #339933;">=</span> scripts<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">innerHTML</span><span style="color: #339933;">;</span>
			<span style="color: #006600; font-style: italic;">// rejestrujemy JS'y</span>
			<span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span><span style="color: #339933;">;</span></pre></div></div>

<p>lub tak, jezeli dostarczamy jedynie JS&#8217;y</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #000066; font-weight: bold;">eval</span><span style="color: #009900;">&#40;</span>ajax.<span style="color: #660066;">xmlHttp</span>.<span style="color: #660066;">responseText</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Jak masz inny pomysl na rozwiazanie tego problemu &#8230; nie krepuj sie, daj komentsa <img src='http://www.losoft.org/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.losoft.org/blog/2010/02/przerejestrowanie-obiektow-js-po-zaladowaniu-kontentu-ajaxem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

