<?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>trafex &#187; JavaScript</title>
	<atom:link href="http://trafex.de/blog/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://trafex.de</link>
	<description>webdev blog</description>
	<lastBuildDate>Sun, 22 Nov 2009 19:55:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MooTools 1.2 erschienen</title>
		<link>http://trafex.de/blog/27/mootools-12-erschienen/</link>
		<comments>http://trafex.de/blog/27/mootools-12-erschienen/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 11:31:35 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[JavaScript-Framework]]></category>
		<category><![CDATA[Mootools]]></category>
		<category><![CDATA[Release]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=27</guid>
		<description><![CDATA[Nach einiger Zeit ist endlich MooTools 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.
Einige der neuen Features der 1.2er Version:

bessere Domunentation
verbesserte Effekte
&#8216;richtige&#8217; Hash-Objekte
Swiff Objekt zur Interaktion mit Flash
die Möglichkeit zu jedem Element Metadaten zu speichern

Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einiger Zeit ist endlich <a href="http://www.mootools.net">MooTools</a> 1.2 erschienen. Das JavaScript-Framework wurde fast ein Jahr nach dem letzten 1.11er Release veröffentlicht.</p>
<p>Einige der neuen Features der 1.2er Version:</p>
<ul>
<li>bessere Domunentation</li>
<li>verbesserte Effekte</li>
<li>&#8216;richtige&#8217; Hash-Objekte</li>
<li>Swiff Objekt zur Interaktion mit Flash</li>
<li>die Möglichkeit zu jedem Element Metadaten zu speichern</li>
</ul>
<p>Bei der Umstellung ist zu beachten, das sich an der API einiges getan hat und man somit evtl. etwas Arbeit in die Umstellung stecken muss &#8211; was sich aber meiner Meinung nach mehr als Lohnt.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/27/mootools-12-erschienen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Super Mario in 14kb Javascript</title>
		<link>http://trafex.de/blog/22/super-mario-in-14kb-javascript/</link>
		<comments>http://trafex.de/blog/22/super-mario-in-14kb-javascript/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 10:00:56 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Spiel]]></category>
		<category><![CDATA[Super Mario]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=22</guid>
		<description><![CDATA[Spiele in Javascript gibt es schon einige. Ein Klassiker ist z.B. Tetris als Javascript und Lemmings wurde auch schon in Javascript umgesetzt.
Als neuesten Spross der Javascript-Spieleumsetzungen hat Jacob Seidelin Super Mario in Javascript umgesetzt. Das besondere hieran ist, dass das komplette Script ohne externe Grafiken auskommt und trotzdem nur 14kb Platz (komprimiert) belegt. Ein paar Schönheitsfehlerchen hat das ganze noch, so gibt es anscheinend keine Pilze und nur ein Level - Cool ist es trotzdem!
Demo: ohne Musik oder mit Musik
]]></description>
			<content:encoded><![CDATA[<p>Spiele in Javascript gibt es schon einige. Ein Klassiker ist z.B. <a href="http://www.google.de/search?q=javascript+tetris" target="_blank">Tetris als Javascript</a> und <a href="http://www.elizium.nu/scripts/lemmings/" target="_blank">Lemmings</a> wurde auch schon in Javascript umgesetzt.<br />
Als neuesten Spross der Javascript-Spieleumsetzungen hat Jacob Seidelin Super Mario in Javascript <a href="http://blog.nihilogic.dk/2008/04/super-mario-in-14kb-javascript.html" target="_blank">umgesetzt</a>. Das besondere hieran ist, dass das komplette Script ohne externe Grafiken auskommt und trotzdem nur 14kb Platz (komprimiert) belegt. Ein paar Schönheitsfehlerchen hat das ganze noch, so gibt es anscheinend keine Pilze und nur ein Level - Cool ist es trotzdem!</p>
<p>Demo: <a href="http://www.nihilogic.dk/labs/mario/mario_small_nomusic.htm" target="_blank">ohne Musik</a> oder <a href="http://www.nihilogic.dk/labs/mario/mario_small_music.htm" target="_blank">mit Musik</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/22/super-mario-in-14kb-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Offtopic: Javascript &#8211; DIE Sprache der Zukunft?</title>
		<link>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/</link>
		<comments>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 07:27:39 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Offtopic]]></category>
		<category><![CDATA[Stargate]]></category>
		<category><![CDATA[Zukunft]]></category>

		<guid isPermaLink="false">http://trafex.de/?p=20</guid>
		<description><![CDATA[
Da hat jemand im Stargate-Film &#8220;Stargate: The Ark of Truth&#8221; (Im Deutschen &#8220;Die Quelle der Wahrheit&#8221;) genau hingeschaut und entdeckt, das in der Zukunft wohl Javascript zum Programmieren verwendet wird. Den passenden Filmausschnitt gibt&#8217;s bei youtube.
Via Ajaxian
]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://img.thedailywtf.com/images/200803/Screenshot1.jpg" alt="Stargate Javascript Screenshot" width="634" height="356" /></p>
<p>Da hat jemand im Stargate-Film &#8220;<a href="http://www.imdb.com/title/tt0942903/" target="_blank">Stargate: The Ark of Truth</a>&#8221; (Im Deutschen &#8220;Die Quelle der Wahrheit&#8221;) genau hingeschaut und entdeckt, das in der Zukunft wohl Javascript zum Programmieren verwendet wird. Den passenden Filmausschnitt gibt&#8217;s bei <a href="http://www.youtube.com/watch?v=7itieZG3hdw" target="_blank">youtube</a>.<br />
Via <a href="http://ajaxian.com/archives/javascript-has-staying-power-used-in-stargate" target="_blank">Ajaxian</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/20/offtopic-javascript-die-sprache-der-zukunft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bestimmte Links automatisch in einem neuen Fenster öffnen</title>
		<link>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/</link>
		<comments>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 15:12:14 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[Mootools]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/</guid>
		<description><![CDATA[Wer kennt das Problem nicht: man verlinkt Dateien, z.B. in einer Galerie Links auf die große Ansicht der Bilder oder möchte das sich PDF&#8217;s nicht im aktuellen Browserfenster öffnen, sondern in einem neuen.
Wenn man dies manuell lösen möchte muss man nun bei jedem Link umständlich target=&#8221;_blank&#8221; anfügen.
David Walsh hat dafür eine eine Javascript-Lösung entwickelt, welche [...]]]></description>
			<content:encoded><![CDATA[<p>Wer kennt das Problem nicht: man verlinkt Dateien, z.B. in einer Galerie Links auf die große Ansicht der Bilder oder möchte das sich PDF&#8217;s nicht im aktuellen Browserfenster öffnen, sondern in einem neuen.<br />
Wenn man dies manuell lösen möchte muss man nun bei jedem Link umständlich target=&#8221;_blank&#8221; anfügen.</p>
<p><a href="http://davidwalsh.name/mootools-open-links-class">David Walsh</a> hat dafür eine eine Javascript-Lösung entwickelt, welche auf Mootools basiert und Links auf einer Seite analysiert und &#8211; je nach Dateiendung des Links &#8211; das target=&#8221;_blank&#8221; automatisch anhängt. Das Script lässt sich meiner Meinung nach auch sehr einfach an andere Javascript-Frameworks anpassen und ist ein interessanter Ansatz dieses Problem zu lösen und die Seite auch benutzbar zu lassen wenn der Betrachter Javascript abgeschaltet hat oder kein Javascript versteht.</p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/19/bestimmte-links-automatisch-in-einem-neuen-fenster-offnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Wenn innerHTML nicht schnell genug ist</title>
		<link>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</link>
		<comments>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/#comments</comments>
		<pubDate>Thu, 10 Jan 2008 18:24:16 +0000</pubDate>
		<dc:creator>StefanB</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[innerHTML]]></category>
		<category><![CDATA[Optimierung]]></category>
		<category><![CDATA[replaceHTML]]></category>
		<category><![CDATA[WebDev]]></category>

		<guid isPermaLink="false">http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/</guid>
		<description><![CDATA[Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden.
Beispiel:

&#60;p id=&#34;inhalt&#34;&#62;Hier kommt beliebiger Inhalt
&#60;a [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt mehrere Wege Inhalt auf einer Seite auszutauschen. Man kann das DOM Modell verwenden, welches von W3 Konsortium standardisiert worden ist. Die gebräuchlichere Variante ist jedoch in den meisten Fällen innerHTML zu benutzen. Auch ist die Verwendung von innerHTML mit den meisten Browsern schneller als die Verwendung der DOM Methoden.</p>
<p>Beispiel:</p>

<div class="wp_syntax"><div class="code"><pre class="html html" style="font-family:monospace;"><span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">p</span> <span style="color: #000066;">id</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;inhalt&quot;</span>&gt;</span>Hier kommt beliebiger Inhalt
<span style="color: #009900;">&lt;<span style="color: #000000; font-weight: bold;">a</span> <span style="color: #000066;">href</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;#&quot;</span> <span style="color: #000066;">onclick</span><span style="color: #66cc66;">=</span><span style="color: #ff0000;">&quot;document.getElementById('inhalt').innerHTML='Und jetzt der neue Text';&quot;</span>&gt;</span>Inhalt tauschen<span style="color: #009900;">&lt;<span style="color: #66cc66;">/</span><span style="color: #000000; font-weight: bold;">a</span>&gt;</span></pre></div></div>

<p>Wenn jedoch viele HTML-Elemente in dem zu tauschendem Inhalt sind, kann das Austauschen durchaus etwas Zeit in Anspruch nehmen.</p>
<p>Steven Levithan stellt in seinem <a href="http://blog.stevenlevithan.com/archives/faster-than-innerhtml" target="_blank">Blog</a> mit replaceHTML eine JavaScript-Funktion vor, welche diese Aufgabe schneller erledigen kann.<span id="more-13"></span></p>
<p>Code:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">function</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> html<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> oldEl <span style="color: #339933;">=</span> <span style="color: #000066; font-weight: bold;">typeof</span> el <span style="color: #339933;">===</span> <span style="color: #3366CC;">&quot;string&quot;</span> <span style="color: #339933;">?</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span>el<span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> el;
    <span style="color: #006600; font-style: italic;">/*@cc_on // Pure innerHTML is slightly faster in IE
    oldEl.innerHTML = html;
    return oldEl;
    @*/</span>
    <span style="color: #003366; font-weight: bold;">var</span> newEl <span style="color: #339933;">=</span> oldEl.<span style="color: #660066;">cloneNode</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span>;
    newEl.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> html;
    oldEl.<span style="color: #660066;">parentNode</span>.<span style="color: #660066;">replaceChild</span><span style="color: #009900;">&#40;</span>newEl<span style="color: #339933;">,</span> oldEl<span style="color: #009900;">&#41;</span>;
    <span style="color: #006600; font-style: italic;">/* Since we just removed the old element from the DOM, return a reference
    to the new element, which can be used to restore variable references. */</span>
    <span style="color: #000066; font-weight: bold;">return</span> newEl;
<span style="color: #009900;">&#125;</span>;</pre></div></div>

<p>Beispiel für die Benutzung:</p>

<div class="wp_syntax"><div class="code"><pre class="javascript javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// innerHTML</span>
el.<span style="color: #660066;">innerHTML</span> <span style="color: #339933;">=</span> newHtml
&nbsp;
<span style="color: #006600; font-style: italic;">// replaceHTML</span>
el <span style="color: #339933;">=</span> replaceHtml<span style="color: #009900;">&#40;</span>el<span style="color: #339933;">,</span> newHtml<span style="color: #009900;">&#41;</span>;</pre></div></div>

<p>Wenn man nur wenige Elemente überschreibt macht die Benutzung von replaceHTML allerdings wenig Sinn. Seine Stärken kann die Funktion nur ausspielen wenn man wirklich viele Elemente austauscht. Und da vor allem beim Verwerfen von vorhandenen Elementen.<br />
Einen kleinen Benchmark, der im Browser läuft, stellt er auch gleich zur Verfügung: <a href="http://stevenlevithan.com/demo/replaceHtml.html" target="_blank">Link</a></p>
]]></content:encoded>
			<wfw:commentRss>http://trafex.de/blog/13/wenn-innerhtml-nicht-schnell-genug-ist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.193 seconds -->
